char存储的就是字符 比较 ‘0’ 计算-‘0’这是很重要的
最后的结果也一定要取模
int main()
{
int n;scanf("%d",&n);
char g[n+2][20];int found=0;
int qq[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char m[11]={'1','0','X','9','8','7','6','5','4','3','2'};//1. * 这里题目给的是大写!!!
for(int i=0;i<n;i++)
{
scanf("%s",g[i]);
}
for(int i=0;i<n;i++)
{
int ff=0;int re=0;
for(int j=0;j<17;j++)
{
if(g[i][j]<'0' || g[i][j]>'9')
{
found=1;ff=1;printf("%s\n",g[i]);break;
}
}
if(ff==1) continue;
for(int j=0;j<17;j++)
{
re+=(g[i][j]-'0')*qq[j];
}
re%=11;
if(g[i][17]!=m[re])
{
found=1;printf("%s\n",g[i]);continue;
}
}
if(!found) printf("All passed\n");
}