POJ--1002 487-3279
2008-04-15 08:07
330 查看
#include<iostream>
#include<iomanip.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
main()
{
int i,j,line,k,duplicate=0,times;
char ssphone[101],snphone[8];
char phonetable[]="2223334445556667777888999"; //用差值填充字符数组,快速计算转换后的值
cin>>line;
long *nphone=new long[line];
for(i=0;i<line;i++)
{
cin>>ssphone;
k=0;
for(j=0;ssphone[j];j++)
{
if(ssphone[j]>='A'&&ssphone[j]<'Z')
{
snphone[k]=phonetable[ssphone[j]-'A'];
k++;
}
if(ssphone[j]>='0'&&ssphone[j]<='9')
{
snphone[k]=ssphone[j];
k++;
}
}
nphone[i]=atoi(snphone); //字符数组转化为int
}
qsort(nphone,line,sizeof(long),cmp); //qsort快速排序
for(i=0;i<line;)
{
times=1;
for(j=i+1;j<line&&nphone[j]==nphone[i];j++)
times++; //号码已排序 相同号码相邻 计算出现次数
if(times>1)
{
duplicate=1;
cout<<setfill('0')<<setw(3)<<nphone[i]/10000<<"-"<<setfill('0')<<setw(4)<<nphone[i]%10000<<" "<<times<<endl;
}
//上面输出语句对输出格式做了精确控制
i=j; //将j赋给i 跳到下个号码
}
if(duplicate==0)cout<<"No duplicates."<<endl;
delete[]nphone;
system("pause");
}
#include<iomanip.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
main()
{
int i,j,line,k,duplicate=0,times;
char ssphone[101],snphone[8];
char phonetable[]="2223334445556667777888999"; //用差值填充字符数组,快速计算转换后的值
cin>>line;
long *nphone=new long[line];
for(i=0;i<line;i++)
{
cin>>ssphone;
k=0;
for(j=0;ssphone[j];j++)
{
if(ssphone[j]>='A'&&ssphone[j]<'Z')
{
snphone[k]=phonetable[ssphone[j]-'A'];
k++;
}
if(ssphone[j]>='0'&&ssphone[j]<='9')
{
snphone[k]=ssphone[j];
k++;
}
}
nphone[i]=atoi(snphone); //字符数组转化为int
}
qsort(nphone,line,sizeof(long),cmp); //qsort快速排序
for(i=0;i<line;)
{
times=1;
for(j=i+1;j<line&&nphone[j]==nphone[i];j++)
times++; //号码已排序 相同号码相邻 计算出现次数
if(times>1)
{
duplicate=1;
cout<<setfill('0')<<setw(3)<<nphone[i]/10000<<"-"<<setfill('0')<<setw(4)<<nphone[i]%10000<<" "<<times<<endl;
}
//上面输出语句对输出格式做了精确控制
i=j; //将j赋给i 跳到下个号码
}
if(duplicate==0)cout<<"No duplicates."<<endl;
delete[]nphone;
system("pause");
}
相关文章推荐
- poj 1002 487-3279
- POJ 1002 487-3279
- 487-3279[POJ1002]
- 【POJ】1002 - 487-3279
- poj 1002 487-3279
- [POJ 1002] 487-3279 C++解题报告
- poj 1002 487-3279
- poj_1002_487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279 G++
- POJ 1002 487-3279(map应用)
- (POJ 1002) 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- POJ-1002 487-3279
- POJ 1002 487-3279 与二维数组的快速排序
- [POJ_1002]487-3279
- poj1002 487-3279 ——水题
- POJ-1002 487-3279