zoukankan      html  css  js  c++  java
  • uva 755 4873279

    这道题WA了很多次,最后发现输出的时候第三位要带上‘-’ = =...
    而且UVA很坑爹的是不能用strcmpi,strupr!!!!
     
     
    View Code
    #include<string>
    #include<stdlib.h>
    #include<cstdio>
    #include<stdio.h>
    #include<string.h>
    typedef struct node
    {
        char num[35];
        int count;
    }tele;
    tele tel[100005];
    int cmp(const void *a,const void *b)
    {
        return strcmp((*(struct node*)a).num,(*(struct node*)b).num);
    }
    void transfrom(char str[],char num[])
    {
        int i,j;
        int len;
        len = strlen(str);
        for(i = 0;i < len;i++)
        if(str[i] >= 'a'&&str[i] <= 'z')
        str[i] -= 32;
    
        for(i =0,j = 0; str[i] != 0;i++)
        {
            if(isdigit(str[i]))
            num[j++] = str[i];
            else if(isalpha(str[i]))
            {
                if(str[i]<='C' && str[i]>= 'A')
                num[j++] = '2';
                if(str[i] <= 'F' && str[i]>= 'D')
                num[j++] = '3';
                if(str[i] <= 'I' && str[i] >= 'G')
                num[j++] = '4';
                if(str[i] <= 'L' && str[i] >= 'J')
                num[j++] = '5';
                if(str[i] <= 'O' && str[i] >= 'M')
                num[j++] = '6';
                if(str[i] == 'S' ||  str[i] == 'P' ||str[i] == 'R')
                num[j++] = '7';
                if(str[i] == 'V' ||str[i] == 'T' ||str[i] == 'U' )
                num[j++] = '8';
                if(str[i] == 'W' ||str[i] == 'X' ||str[i] == 'Y' )
                num[j++] = '9';
            }
            if(j == 3)
            num[j++] = '-';
        }
        num[j] = '\0';
    }
    int main()
    {
        int t,n,i,j,count;
        char str[100],num[15];
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            for(i = 0;i < n;i++)
            {
                scanf("%s",str);
                transfrom(str,num);
                strcpy(tel[i].num,num);
                tel[i].count = 1;
            }
            qsort(tel,n,sizeof(tel[0]),cmp);
            int leap;
            leap = 1;
            for(i = 0;i < n-1;i++)
            {
                int count = 1;
                if(strcmp(tel[i].num,tel[i+1].num)==0 && i< n)
                {
                    while(strcmp(tel[i].num,tel[i+1].num)==0&&i<n) count++,i++;
                    printf("%s %d\n",tel[i].num,count);
                    leap = 0;
                }
    
            }
            if(leap)
            puts("No duplicates.");
            if(t)
            puts("");
        }
        return 0;
    }
  • 相关阅读:
    整数数组的组合问题
    C++ 虚函数与纯虚函数 浅析
    NetBeans 8.0 连接远程服务器
    R语言画图教程之盒形图
    R语言建立回归分析,并利用VIF查看共线性问题的例子
    R语言建立回归分析,并利用VIF查看共线性问题的例子
    Python技巧—list与字符串互相转换
    Python技巧—list与字符串互相转换
    sas正则式之prxparen
    sas正则式之prxparen
  • 原文地址:https://www.cnblogs.com/0803yijia/p/2606792.html
Copyright © 2011-2022 走看看