1031. 查验身份证(15)

来源:互联网 发布:mongodb python 教程 编辑:程序博客网 时间:2024/05/20 19:16
#include<stdio.h>int main(){  int power[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},Z=0,n,i,flag=1,illegal=0;  char M[11]={'1','0','X','9','8','7','6','5','4','3','2'},str[19];    scanf("%d",&n);  while(n--)  {    flag = 1;    Z = 0;    scanf("%s",str);    for(i=0; i<17; i++)    {      if(str[i]>='0' && str[i]<='9')      {        Z += (str[i] - '0') * power[i];      }      else              //数字码中含有非数字      {        flag = 0;        illegal++;      }    }    Z = Z%11;    if(flag==1 && M[Z]!=str[17])    //校验位不符合    {      flag = 0;      illegal++;    }    if(flag==0)      printf("%s\n",str);  }  if(illegal==0)    printf("All passed");  return 0;}

0 0