您的位置:首页 > 其它

POJ 1002 487-3279

2016-05-23 14:26 337 查看
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
char map[26]={'2', '2', '2', '3', '3', '3', '4', '4', '4',
'5', '5', '5', '6', '6', '6', '7', '7', '7',
'7', '8', '8', '8', '9', '9', '9', '9'};//按键映射表
char arry[100000][9];//处理好后n次输入的所有字符串
char untelnum[50];//某一次未经处理的字符串
int main()
{
int n,i,j,phone_j,count=1;
int flag=0;
scanf("%d",&n);
//输入字符串,整理
for(i=0;i<n;i++)
{
scanf("%s",untelnum);
phone_j=0;
for(j=0;untelnum[j]!='\0';j++)
{
if(phone_j==3)
{
arry[i][phone_j]='-';
phone_j++;
}
if(untelnum[j]=='-')
{
continue;
}else if('0'<=untelnum[j] && untelnum[j]<='9')
{
arry[i][phone_j]=untelnum[j];
phone_j++;
}else if('A'<=untelnum[j] &&untelnum[j]<='Z')
{
arry[i][phone_j]=map[untelnum[j]-'A'];
phone_j++;
}
}
}
//排序
qsort(arry, n, 9*sizeof(char), strcmp);
//检查重复次数
for(i=0;i<n-1;i++)
{
if(strcmp(arry[i],arry[i+1])==0)//重复
{
flag=1;
count++;
}else
{
if(count>1)
{
printf("%s %d\n",arry[i],count);
count=1;
}
}
}
if(count>1)
{
printf("%s %d\n",arry[i],count);
}
if(!flag)
{
printf("No duplicates.");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: