水题,不解释!
纪念第一次用C++,以后应该不太用C了。。
#include<cstdio>//C语言中的#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>//编译器用vs2010,系统停顿头文件
using namespace std;
int map(char letter)
{
if('0'<=letter && letter<='9')
return letter-'0';
else if(letter=='A' || letter=='B' || letter=='C')
return 2;
else if(letter=='D' || letter=='E' || letter=='F')
return 3;
else if(letter=='G' || letter=='H' || letter=='I')
return 4;
else if(letter=='J' || letter=='K' || letter=='L')
return 5;
else if(letter=='M' || letter=='N' || letter=='O')
return 6;
else if(letter=='P' || letter=='R' || letter=='S')
return 7;
else if(letter=='T' || letter=='U' || letter=='V')
return 8;
else if(letter=='W' || letter=='X' || letter=='Y')
return 9;
else
return 0;
}
int main()
{
int n,flag,dup_flag,dup_count,temp,temp2;
int phone_num[100000];
char str[500];
cin>>n;
memset(phone_num,0,sizeof(phone_num));
for(int i=0;i<n;i++)
{
cin>>str;
flag=0;
for(int j=0;str[j]!='\0';j++)
{
if(str[j]!='-')
{
flag++;
if(flag<=7)
{
phone_num[i]=phone_num[i]*10+map(str[j]);
if(flag==7)
break;
}
}
}
}
dup_flag=0;dup_count=0;
sort(phone_num,phone_num+n);
for(int k=1;k<n;k++)
{
if(phone_num[k]==phone_num[k-1])
{
dup_flag=1;
dup_count++;
if(phone_num[k]!=phone_num[k+1])
{
printf("%03d-%04d %d\n",phone_num[k]/10000,phone_num[k]%10000,dup_count+1);
dup_count=0;
}
}
}
if(dup_flag==0)
cout<<"No duplicates.\n"<<endl;
system("pause");
return 0;
}