心塞,‘0’,‘9’该用单引号用单引号,该用双引号用双引号,丢了就完全不对了,为了这引号找了快一个小时,就是看不出代码哪错了,还好终于...
#include<cstdio>
#include<cstring>
int a[20]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char b[15]={'1','0','X','9','8','7','6','5','4','3','2'};
int main()
{
int n;
scanf("%d",&n);
char str[20];
bool flag=true;
for(int i=0;i<n;i++)
{
scanf("%s",str);
int weight=0;
int j;
for(j=0;j<17;j++)
{
if(!(str[j]>='0'&&str[j]<='9')) break;
weight+=(str[j]-'0')*a[j];
}
if(j<17)
{
flag=false;
printf("%s\n",str);
}else
{
if(b[weight%11]!=str[17])
{
flag=false;
printf("%s\n",str);
}
}
}
if(flag==true) printf("All passed\n");
return 0;
}