C. 身份证号码最后一位
#include <stdio.h>
void zi()
{
char a[18];
int z;
scanf("%s",a);
z=(a[0]-'0')*7+(a[1]-'0')*9+(a[2]-'0')*10+(a[3]-'0')*5+(a[4]-'0')*8+(a[5]-'0')*4+(a[6]-'0')*2+(a[7]-'0')*1+(a[8]-'0')*6+(a[9]-'0')*3+(a[10]-'0')*7+(a[11]-'0')*9+(a[12]-'0')*10+(a[13]-'0')*5+(a[14]-'0')*8+(a[15]-'0')*4+(a[16]-'0')*2;
int x;
x=z%11;
int c;
if(x== 0) c=1;
else if(x==1) c=0;
else if(x==2) c=40;
else if(x==3) c=9;
else if(x==4) c=8;
else if(x==5) c=7;
else if(x==6) c=6;
else if(x==7) c=5;
else if(x==8) c=4;
else if(x==9) c=3;
else if(x==10) c=2;
if(c==a[17]-'0')
printf("right\n");
else
printf("wrong\n");
}
int main(void)
{
int a;
scanf("%d",&a);
for(;a>0;a--)
{
zi();
}
return 0;
}
亲测可过