#include
using namespace std;
#include
int main()
{
int n;
cin >> n;
int quanzhong[17] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
char xiaoyan[11] = { '1','0','x','9','8','7','6','5','4','3','2' };
int cnt = 0;
for (int i = 1; i <= n; i++)
{
int sum = 0;
int flag = 1;
char id[18];
scanf("%s",id);
for (int i = 0; i < 17; i++)
{
if (!(id[i] >= '0'&&id[i] <= '9'))
{
cout << id << endl;
cnt++;
flag = 0;
break;
}
}
if (flag == 1)
{
for (int j = 0; j < 17; j++)
{
sum = sum + (id[j] - '0')*quanzhong[j];
}
if (xiaoyan[sum % 11] != id[17])
{
cout << id << endl;
cnt++;
}
}
}
if (cnt == 0)
{
cout << "All passed" << endl;
}
system("pause");
return 0;
}
为什么这样会部分正确,网上有个答案跟我基本一样但是全部正确