北大POJ 1002题, 请问如何用C写出结果,已经做到规范输出号码,其它步骤不知道怎么办
已经做到规范输出号码,其它步骤不知道怎么办试题链接http://poj.org/problem?id=1002&lang=zh-CN&change=true在网上找了好多...
已经做到规范输出号码,其它步骤不知道怎么办 试题链接http://poj.org/problem?id=1002&lang=zh-CN&change=true
在网上找了好多都是C++,可是我刚开始学C,还没接触到那么多,求C程序代码,分不多见谅 展开
在网上找了好多都是C++,可是我刚开始学C,还没接触到那么多,求C程序代码,分不多见谅 展开
展开全部
#include<stdlib.h>
#include<stdio.h>
int comp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
char T[27]="2223334445556667-77888999-";
int* NO;
int N, i=0, n=0, k=1;
char c;
scanf("%d",&N);
NO = (int*)malloc(sizeof(int)*(N+1));
getchar();
for(;i<N;i++)
{
NO[i]=0;
while((c=getchar())!='\n')
{
if(c>='A'&&c<='Z')c=T[c-'A'];
if('-'!=c)NO[i]=NO[i]*10+c-'0';
}
}
qsort(NO,i,sizeof(int),comp);
for(i=0;i<=N;i++)
{
if(NO[i]==NO[i+1])k++;
else if(k>=2)
{
int a=NO[i]/10000,b=NO[i]%10000;
printf("%03i-%04i %i\n",a,b,k);
k=1;n++;
}
}
if(0==n)printf("No duplicates.\n");
return 0;
}
#include<stdio.h>
int comp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
char T[27]="2223334445556667-77888999-";
int* NO;
int N, i=0, n=0, k=1;
char c;
scanf("%d",&N);
NO = (int*)malloc(sizeof(int)*(N+1));
getchar();
for(;i<N;i++)
{
NO[i]=0;
while((c=getchar())!='\n')
{
if(c>='A'&&c<='Z')c=T[c-'A'];
if('-'!=c)NO[i]=NO[i]*10+c-'0';
}
}
qsort(NO,i,sizeof(int),comp);
for(i=0;i<=N;i++)
{
if(NO[i]==NO[i+1])k++;
else if(k>=2)
{
int a=NO[i]/10000,b=NO[i]%10000;
printf("%03i-%04i %i\n",a,b,k);
k=1;n++;
}
}
if(0==n)printf("No duplicates.\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询