1031 查验身份证,C

#include <stdio.h>

int main()
{
    int n,i=0,r=1,sum=0;
    char a[19]={0};
    int qz[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    char bijiao[11] = {'1','0','X','9','8','7','6','5','4','3','2'};

    scanf("%d",&n);
    while(n)
    {
        scanf("%s",a);
        sum = 0;
        for(i=0; i<17; i++)
        {
            if( a[i]<'0' || a[i]>'9' )
                {
                    printf("%s\n",a);
                    r = 0;
                    break;
                }
            sum += qz[i]*(a[i]-'0');
            if(i == 16)
            {
                sum = sum%11;
                if( bijiao[sum] != a[17] )
                {
                printf("%s\n",a);
                r = 0;
                }
            }
        }

        n--;
    }

    if(r)
        printf("All passed");


	//system("pause");
    return 0;
}
发布了44 篇原创文章 · 获赞 0 · 访问量 876

猜你喜欢

转载自blog.csdn.net/weixin_43916400/article/details/104480254