| ||||||||||
| 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 | |||||||||
高手们帮忙看以下我的1002题为啥老wrong answer! thanks!#include<stdio.h>
#include<stdlib.h>
int a[100002];
int zhuanhuan(int a[] , int i ,char s[])
{
int j = 0 , t = 1000000 ;
while(t > 0)
{ if(s[j] == '-') j++;
else if(s[j]>='A'&&s[j] <='C')
{ a[i] += t * 2; t /= 10; j++;}
else if(s[j]>='D'&&s[j] <='F')
{ a[i] += t * 3; t /= 10; j++;}
else if(s[j]>='G'&&s[j] <='I')
{ a[i] += t * 4; t /= 10; j++;}
else if(s[j]>='J'&&s[j] <='L')
{ a[i] += t * 5; t /= 10; j++;}
else if(s[j]>='M'&&s[j] <='O')
{ a[i] += t * 6; t /= 10; j++;}
else if(s[j]=='P'||s[j] == 'R'||s[j] =='S')
{ a[i] += t * 7; t /= 10; j++;}
else if(s[j]>='T'&&s[j] <='V')
{ a[i] += t * 8; t /= 10; j++;}
else if(s[j]>='W'&&s[j] <='Y')
{ a[i] += t * 9; t /= 10; j++;}
else if(s[j]<='9'&&s[j]>='0')
{
a[i] += t * (s[j] - '0') ; t /= 10 ;j++;
}
}
return 0;
}
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
int main()
{
int n , i , j , t = 0 , k ,t1 ,t0;
char s[50];
scanf("%d",&n);
for( i = 0 ; i < n ; i++)
{
scanf("%s",&s);
a[i] = 0;
zhuanhuan(a,i,s);
}
a[n] = 0;
qsort(a , n ,sizeof(int) , cmp);
for( i = 0 ; i < n ; )
{
k = 0;
if(a[i] == a[i + 1]){
t = 1;
for(j = i ;j < n ;j++)
if(a[i] == a[j]) k++;
else break;
}
if(k != 0) {
t1 = a[i]/10000;
t0 = a[i]%10000;
if(t1>=100)
{
if(t0<=9999&&t0>=1000)
printf("%d-%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=999&&t0>=100)
printf("%d-0%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=99&&t0>10)
printf("%d-00%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=9&&t0>=0)
printf("%d-000%d %d\n",a[i]/10000,a[i]%10000,k);
}
else if(t1>=10)
{
if(t0<=9999&&t0>=1000)
printf("0%d-%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=999&&t0>=100)
printf("0%d-0%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=99&&t0>10)
printf("0%d-00%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=9&&t0>=0)
printf("0%d-000%d %d\n",a[i]/10000,a[i]%10000,k);
}
else if(t1>=0)
{
if(t0<=9999&&t0>=1000)
printf("00%d-%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=999&&t0>=100)
printf("00%d-0%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=99&&t0>10)
printf("00%d-00%d %d\n",a[i]/10000,a[i]%10000,k);
else if(t0<=9&&t0>=0)
printf("00%d-000%d %d\n",a[i]/10000,a[i]%10000,k);
}
}
if(k == 0) i++;
else i = i + k;
}
if(t = 0) printf("No duplicates.\n");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator