代码如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
//定义、输入
string ISBN;
cin >> ISBN;
int judge; //记录根据输入的ISBN计算出的识别码
int num[9]; //用来存放ISBN中的所有数字
int k = 0;
for (int i = 0; i < 9; i++)
{
if (ISBN[k] != '-')
{
num[i] = (ISBN[k] - 48);
}
else
i--;
k++;
}
//计算 judge 的值
for (int i = 0; i < 9; i++)
judge = judge + (i + 1) * num[i];
judge = judge % 11;
//判断
if (judge != 10)
{
if (judge == (ISBN[12] - 48))
cout << "Right";
else
{
ISBN[12] = (judge + 48);
cout << ISBN;
}
}
else
{
if ('X' == ISBN[12])
cout << "Right";
else
{
ISBN[12] = 'X';
cout << ISBN;
}
}
return 0;
}
测试点在vsc上能输出正确结果,并且我也下载了第一个WA的数据,然后再次在vsc上测试,发现仍然能够输出正确结果,但为什么这一串代码放在洛谷上就是错误的? 写自闭了