1031 查验身份证

来源:互联网 发布:linux shell 编程入门 编辑:程序博客网 时间:2024/05/17 09:00
#include<stdio.h>int main(){  int n;  char a[19];  int b[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};  char c[11]={'1', '0','X','9' ,'8', '7', '6', '5', '4' ,'3', '2'};  char *p;  int i=0;  int flag;  int sum;  int tag=1;  int result;  scanf("%d",&n);  getchar();  while(n--)  {    i=0;    sum=0;    flag=1;    gets(a);    p=a;    while(*(p+i)>='0' && *(p+i)<='9' && i<17) i++;    if(i!=17)     {      flag=0;      tag=0;    }    i=0;    if(flag)    {      while(i<17)      {        sum+= (*(p+i)-'0')*b[i];        i++;      }    }    result=sum%11;    if(c[result] != *(p+17))    {      flag=0;      tag=0;    }    if(flag==0)      puts(a);  }  if(tag)    printf("All passed\n");  return 0;}
0 0
原创粉丝点击