| ||||||||||
| 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>
int map(char ch)
{
if(ch=='0')
return 0;
else if(ch=='1')
return 1;
else if(ch=='A' || ch=='B' || ch=='C' || ch=='2')
return 2;
else if(ch=='D' || ch=='E' || ch=='F' || ch=='3')
return 3;
else if(ch=='G' || ch=='H' || ch=='I' || ch=='4')
return 4;
else if(ch=='J' || ch=='K' || ch=='L' || ch=='5')
return 5;
else if(ch=='M' || ch=='N' || ch=='O' || ch=='6')
return 6;
else if(ch=='P' || ch=='R' || ch=='S' || ch=='7')
return 7;
else if(ch=='T' || ch=='U' || ch=='V' || ch=='8')
return 8;
else if(ch=='W' || ch=='X' || ch=='Y' || ch=='9')
return 9;
else return -1;
}
int convert(char s[100]){//把输入字符串转换为数字
int i=0;
int number=0,k=1000000;
while(s[i]!='\0'){
if(map(s[i])!=-1){number+=k*map(s[i]);k/=10;}
++i;
}
return number;
}
int partition(int *L,int low,int high)
{
int key;
L[0]=L[low];
key=L[low];
while(low<high){
while(low<high && L[high]>=key)--high;
L[low]=L[high];
while(low<high && L[low]<=key)++low;
L[high]=L[low];
}
L[low]=L[0];
return low;
}
void Qsort(int *L,int low,int high)//快速排序
{
int loc;
if(low<high){
loc=partition(L,low,high);
Qsort(L,low,loc-1);
Qsort(L,loc+1,high);
}
}
main()
{
char ss[100],gg[8];
int *cc,n,i,j,k=0,num=1;
scanf("%d",&n);
cc=(int *)malloc((n+1)*sizeof(int));
for(i=0;i<=n;++i)
cc[i]=0;
for(i=1;i<=n;++i){
scanf("%s",ss);
cc[i]=convert(ss);
}
Qsort(cc,1,n);//排好顺序
printf("\n");
for(i=1;i<=n;++i){//输出
if(cc[i]==cc[i+1])num++;
if(num>1 && cc[i]!=cc[i+1])
{
itoa(cc[i],gg,10);//把数字换为字符
if(cc[i]/1000000!=0){
for(j=0;j<3;++j)
printf("%c",gg[j]);
printf("-");
for(j=3;j<=6;++j)
printf("%c",gg[j]);
printf(" %d\n",num);
}
else {//首位为0的情况
printf("0");
for(j=0;j<2;++j)
printf("%c",gg[j]);
printf("-");
for(j=2;j<6;++j)
printf("%c",gg[j]);
printf(" %d\n",num);
}
num=1;
if(k==0)k=1;
}
}
if(k==0)printf("No duplicates");
getch();
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator