| ||||||||||
| 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 | |||||||||
神级菜鸟1002求指导,测试了很多数据通过,还是WA,希望高手指出错误。。。#include<stdio.h>
#include<algorithm>
using namespace std;
char str[25];
long tel[100005];
int main()
{
int n;
bool flag=false;
scanf("%d",&n);
getchar();
int digit(char c);
for(int i=0;i<n;i++)
{
tel[i]=0;
scanf("%s",&str);
for(int j=0;str[j]!='\0';j++)
{
if(str[j]!='-') tel[i]=tel[i]*10+digit(str[j]);
}
}
sort(tel,tel+n);
int num=1;
for(int i=1;i<n;i++)
{
if(tel[i]==tel[i-1]) num++;
else if(tel[i]!=tel[i-1]&&num>1)
{
printf("%03d-%04d %d\n",tel[i-1]/10000,tel[i-1]%10000,num);
flag=true;
num=1;
}
}
if(num>1)//最后后一段连续相等 在没有输出时就结束循环
{
printf("%03d-%04d %d\n",tel[n-1]/10000,tel[n-1]%10000,num);
flag=true;
}
if(!flag) printf("No duplicates.\n");
system("pause");
return 0;
}
int digit(char c)
{
int d=c;
if(d<60) return d-48;
else if(d==65||d==66||d==67) return 2;
else if(d==68||d==69||d==70) return 3;
else if(d==71||d==72||d==73) return 4;
else if(d==74||d==75||d==76) return 5;
else if(d==77||d==78||d==79) return 6;
else if(d==80||d==82||d==83) return 7;
else if(d==84||d==85||d==86) return 8;
else return 9;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator