pku1002题 C语言
http://poj.org/problem?id=1002打开网址便能看到题目。我的问题是:从范例可以看到,明明12个数据,最后打印出来却只有9个,而我的程序计算出来1...
http://poj.org/problem?id=1002
打开网址便能看到题目。
我的问题是:
从范例可以看到,明明12个数据,最后打印出来却只有9个,而我的程序计算出来12个被系统驳回Wrong answer
求大神指点
下图为我程序计算结果: 展开
打开网址便能看到题目。
我的问题是:
从范例可以看到,明明12个数据,最后打印出来却只有9个,而我的程序计算出来12个被系统驳回Wrong answer
求大神指点
下图为我程序计算结果: 展开
1个回答
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void *a, const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,a[100010]={0},i,j,k,t;
char q[26]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','Q','7','7','8','8','8','9','9','9','Z'};
char b[100010][100],data[10];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",b[i]);
k=0;
for(j=0;j<strlen(b[i]);j++)
{
if(b[i][j]>='A'&&b[i][j]<='Z')
data[k++] = q[b[i][j]-'A'];
else if(b[i][j]>='0'&&b[i][j]<='9')
data[k++]=b[i][j];
else
continue;
}
data[k] = '\0';
a[i]=atoi(data);
}
qsort(a,n,sizeof(int),cmp);
int count = 1;
int head, tale;
int flag = 0;
for(i=0;i<n;i++){
while(i<n-1 && a[i+1] == a[i]){
count ++;
i ++;
}
if(count > 1){
head = a[i] / 10000;
tale = a[i] % 10000;
printf("%03d-%04d %d\n", head, tale, count);
count = 1;
flag = 1;
}
}
if(!flag)
printf("No duplicates.\n");
return 0;
}
上述AC代码,题意是找出重复的号码,单个的不输出
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询