1031 查验身份证 (15 分)
代码如下:
#include<string.h>
int main()
{
int quan[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char jian[12]={'1','0','X','9','8','7','6','5','4','3','2'};
int n,count=0,i,j,s=0,k=0;
scanf("%d",&n);
char id[19],b[100][19];
for(i=0;i<n;i++)
{
scanf("%s",id);
for(j=0,s=0;j<17&&'0'<=id[j]&&id[j]<='9';j++)
s+=(id[j]-'0')*quan[j];
if(j==17&&jian[s%11]==id[17])
count++;
else
{
strcpy(b[k],id);
k++;
}
}
if(count==n)
printf("All passed");
else
{
for(i=0;i<k;i++)
puts(b[i]);
}
}