uva755 4873279

哎,这两天做那道题都FAIL,真是郁闷,强烈的打击了我的积极性,终于有一道AC了,花了一早晨的时间,只是这道题出错的地方实在是太离谱,真是不应该啊,同一个地方又摔倒了一次

View Code
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int b[]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
int a[100010];
int cmp(const void *a,const void *b)
{
    return (*(int *)a-*(int *)b);
};
int main()
{
    char st[1000];
    int T;
    scanf("%d",&T);
        int N, i, j, k, flag = 1, s;
        scanf("%d",&N);
        getchar();
        for(i = 0;i < N; i++)
        {
            s = 0;
            gets(st);
            for(j = 0; st[j] != '\0'; j++)
            {
                if(st[j] >= '0' && st[j] <= '9')
                    s = s*10 + st[j]-'0';
                else if(st[j] >= 'A' && st[j] < 'Z' && st[j] != 'Q')
                    s = s*10 + b[st[j]-'A'];
            }
            a[i] = s;
        }
        qsort(a,N,sizeof(a[0]),cmp);
        for(i = 0;i <= N-1; )
        {
            k = 1;
            for(j = i+1;j < N; j++)
            {
                if(a[j] == a[i])
                    k++;
                else
                    break;
            }
            if(k > 1)
            {
                printf("%03d-%04d %d\n",a[i]/10000,a[i]%10000,k);
                flag = 0;
            }
            i = j;
        }
        if(flag)
            printf("No duplicates.\n");
    return 0;
}
原文地址:https://www.cnblogs.com/SDUTYST/p/2597342.html