#include<stdio.h>
#include<string.h>
int weight[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char s[]={'1','0','X','9','8','7','6','5','4','3','2'};
int judge1(char a[])
{
for(int i=0;i<17;i++)
{
if(a[i]<'0'||a[i]>'9')
return 1;
}
return 0;
}
int judge2(char a[])
{
int sum=0;
for(int i=0;i<17;i++)
{
sum+=weight[i]*(a[i]-'0');
}
sum%=11;
if(s[sum]==a[17])
return 0;
else return 1;
}
main()
{
int n,flag[100]={0},count =0;
char a[100][20];
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++)
{
gets(a[i]);
}
for(int i=0;i<n;i++)
{
if(judge1(a[i])||judge2(a[i]))
{count++;
flag[i]=1;}
}
if(count==0)printf("All passed");
else
for(int i=0;i<n;i++)
{
if(flag[i]==1)
printf("%s\n",a[i]);
}
}
pat 查验身份证(c语言实现)
最新推荐文章于 2023-12-19 09:12:07 发布