| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么总是WA?麻烦高手赐教!#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
long int iP[110000];
int compare(const void * a,const void * b);
int main()
{
long int inNum;//定义输入数据组数
cin>>inNum;
long int i=0;//循环变量
char input[300];//定义字符串,存放输入字符
for(i=0;i<300;i++)
input[i]='\0';
for(i=0;i<inNum;i++)
{
cin>>input;//读入字符串
//循环,将输入字符串转换成统一格式
long int k=1000000;//变量用于数组下标的标记
int n=0;
iP[i]=0;
for(int j=0;input[j]!='\0';j++)
{
if(input[j]>='A' && input[j]<='Q')
{
iP[i]+=((input[j]-'A')/3+2)*k;
k/=10;
n++;
}
else if(input[j]>'Q' && input[j]<='Z')
{
iP[i]+=((input[j]-'A'-1)/3+2)*k;
k/=10;
n++;
}
else if(input[j]<='9' && input[j]>='0')
{
iP[i]+=(input[j]-'0')*k;
k/=10;
n++;
}
if(n==7)
break;
}
}
//对输入字符串进行排序
qsort((void *)iP,inNum,sizeof(iP[0]),compare);
//for(i=0;i<inNum;i++)
// cout<<iP[i]<<endl;
int state=0;//用于标记是否有相同电话号码
long int count=0;
long int j=0;
for(i=0;i<inNum;)
{
count=1;
for(j=i+1; j<inNum && (iP[i]==iP[j]);j++)
count++;
if(count>1)
{
state=1;
cout<<setfill('0')<<setw(3)<<iP[i]/10000<<"-"<<setw(4)<<iP[i]%10000<<" "<<count<<endl;
}
i=j;
}
//没有相同号码时输出
if(state==0)
cout<<"No duplicates."<<endl;
return 0;
}
int compare(const void * a,const void * b)
{
return (*(long int **)a-*(long int **)b);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator