大一新生的萌新写法
#include<iostream>
using namespace std;
int a[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char b[18]={'1','0','X','9','8','7','6','5','4','3','2'};
bool flag=false;//当有不合法的身份证号时,flag为true
int main(){
int n;cin>>n;
for(int i=0;i<n;i++){//进行n次循环
string s;cin>>s;//输入身份证号
int sum=0,j;
for(j=0;j<=16;j++){//判断前17位
if(s[j]>='0'&&s[j]<='9')
sum+=(s[j]-'0')*a[j];
else{
flag=true;
cout<<s<<endl;
break;
}
}
//必须要判断j==17,当在for循环里出现字母跳出循环后,此时不满足j==17
if(j==17&&b[sum%11]!=s[17]) flag=true,cout<<s<<endl;
}
if(!flag) cout<<"All passed";
return 0;
}