#include<stdio.h>
int main()
{
int n,i,j,k;
int sum,weight[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char yan[11]={'1','0','X','9','8','7','6','5','4','3','2'};
char str[100][20];
while(~scanf("%d",&n))
{
for(i=0;i<n;i++) scanf("%s",str[i]);
k=0;
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<17;j++)
{
if(str[i][j]<'0'||str[i][j]>'9') break;
sum+=(str[i][j]-'0')*weight[j];
}
if(j<17)
{
printf("%s\n",str[i]);
continue;
}
sum%=11;
if(yan[sum]==str[i][j]) k++;
else printf("%s\n",str[i]);
}
if(k==n) printf("All passed\n");
}
return 0;
}1031_查验身份证(15)
最新推荐文章于 2022-01-21 19:14:01 发布
本文介绍了一个用于验证中国身份证号码校验码是否正确的C语言程序。该程序通过输入一组身份证号码,利用特定的权重值计算出校验码,并与身份证号码上的校验码进行对比,判断其是否正确。
1560

被折叠的 条评论
为什么被折叠?



