北大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程序代码,分不多见谅
展开
 我来答
porker2008
2011-07-22 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式