为什么会错啊,我在vsc上跑的例子是对的

P1055 [NOIP2008 普及组] ISBN 号码

Hi_Wind @ 2021-10-07 23:15:27

代码如下:

#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上测试,发现仍然能够输出正确结果,但为什么这一串代码放在洛谷上就是错误的? 写自闭了


by Surelysuper @ 2021-10-07 23:30:44

@LV丶Coding 使用洛谷在线IDE试试?


by zmza @ 2021-10-08 07:45:28

@LV丶Coding 您的 judge 初始值没有赋值成0。


by Hi_Wind @ 2021-10-08 10:57:59

@张茗祖 谢谢,谢谢,赋初值后就全部AC了


by Hi_Wind @ 2021-10-08 10:58:33

@Surelysuper okk,我下回试试洛谷在线IDE,我以前不知道有这个东西


|