| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
老是WA,大虾帮忙看看好吗?思路就是把输入字符串转为整形,放入数组,然后快速排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#undef _DEBUG
int map[26];
int num;
int * array;
void init();
int parse();
static int comp(const void * a,const void *b);
void print();
void process();
int main()
{
char s[32];
int tmp;
int i;
scanf("%d",&num);
#ifdef _DEBUG
printf("%d\n",num);
#endif
init();
i=0;
bzero(s,32);
while(scanf("%s",s)!=EOF){
#ifdef _DEBUG
printf("%s\t",s);
printf("%d\n",parse(s));
#endif //_DEBUG
tmp=parse(s);
array[i++]=tmp;
bzero(s,32);
}
#ifdef _DEBUG
printf("i=%d\tnum=%d\n",i,num);
#endif //_DEBUG
//sort
qsort((void *)array,num,sizeof(int),comp);
print();
free(array);
return 0;
}
//转换为整数
int parse(char * s)
{
char *p;
int result;
p=s;
result=0;
while(*p){
if(isdigit(*p)){
result=result*10 + *p - '0';
}
else if(isupper(*p)){
result=result*10 + map[(*p)-'A'];
}
p++;
}
return result;
}
//初始化映射表和分配内存
void init()
{
map['A'-'A']=2;
map['B'-'A']=2;
map['C'-'A']=2;
map['D'-'A']=3;
map['E'-'A']=3;
map['F'-'A']=3;
map['G'-'A']=4;
map['H'-'A']=4;
map['I'-'A']=4;
map['J'-'A']=5;
map['K'-'A']=5;
map['L'-'A']=5;
map['M'-'A']=6;
map['N'-'A']=6;
map['O'-'A']=6;
map['P'-'A']=7;
map['Q'-'A']=7;
map['R'-'A']=7;
map['S'-'A']=7;
map['T'-'A']=8;
map['U'-'A']=8;
map['U'-'A']=8;
map['W'-'A']=9;
map['X'-'A']=9;
map['Y'-'A']=9;
map['Z'-'A']=9;
array=malloc(num*sizeof(int));
}
static
int comp(const void * a,const void * b)
{
return *((int *)a)-*((int *)b);
}
//打印出已经排序的数组
void print()
{
int i;
int count;
int flag;
count=0;
flag=0;
for(i=0;i<num-1;i++){
if(array[i]!=array[i+1]){
if(count > 0){
flag=1;
printf("%03d-%04d %d\n",array[i]/10000,array[i]%10000,count+1);
}
count=0;
}else{
count++;
}
}
if(count>0){
flag=1;
printf("%03d-%04d %d\n",array[i]/10000,array[i-1]%10000,count+1);
}
if(!flag){
printf("No duplicates.\n");
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator