美文网首页
杭电ACM-2629

杭电ACM-2629

作者: 1QzUPm_09F | 来源:发表于2017-01-22 12:28 被阅读0次

    题目:

    2629题

    代码:

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int i,k,n,y,m,d,adress;
        char a[18],s[20];
        scanf("%d",&n);
        for(k=0;k<n;k++)
        {
            getchar();
            for(i=0;i<18;i++)
            {
                scanf("%c",&a[i]);
            }
            adress=(a[0]-'0')*10+(a[1]-'0');
            if(adress==33) strcpy(s,"Zhejiang");
            if(adress==11) strcpy(s,"Beijing");
            if(adress==71) strcpy(s,"Taiwan");
            if(adress==81) strcpy(s,"Hong Kong");
            if(adress==82) strcpy(s,"Macao");
            if(adress==54) strcpy(s,"Tibet");
            if(adress==21) strcpy(s,"Liaoning");
            if(adress==31) strcpy(s,"Shanghai");
            printf("He/She is from %s,and his/her birthday is on %c%c,%c%c,%c%c%c%c based on the table.\n",s,a[10],a[11],a[12],a[13],a[6],a[7],a[8],a[9]);
        }
        return 0;
    }
    

    注意:
    只要遇到字符就要想到getchar 这个字符有时候会吃掉‘\n’导致字符串不完整 很可怕的
    其次这道题只能用字符变量 因为身份证号码是连续的 所以整形没法分离出来
    最后要注意字符串不能赋值 字符串不能赋值 字符串不能赋值!!!
    要赋值就用strcpy(a,b);!!!

    相关文章

      网友评论

          本文标题:杭电ACM-2629

          本文链接:https://www.haomeiwen.com/subject/lnfobttx.html