Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

神级菜鸟1002求指导,测试了很多数据通过,还是WA,希望高手指出错误。。。

Posted by JSsun at 2011-08-17 20:18:19
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator