为什么定义数组长度是13的时候过不了,但是改成14就ac了呀?

P1055 [NOIP2008 普及组] ISBN 号码

Sasanguk @ 2023-10-23 13:59:04

#include <iostream>

using namespace std;

int main()
{
    char n[13],num;//这里数组长度定义13的时候过不了,但是定义成14就可以了,是为什么呀?
    int zz = 1;
    cin >> n;
    int sum = 0;
    for (int i = 0; i <11; i++)
    {
        if (n[i] != '-')
        {
            sum += (n[i]-'0') * zz;
            zz++;
        }
    }
    sum %= 11;
    if (sum == 10)
        num = 'X';
    else
        num = sum + '0';
    if (num == n[12])
        cout << "Right" << endl;
    else
    {
        n[12] = num;
        cout << n << endl;
    }
    system("pause");
    return 0;
}

by Hagasei @ 2023-10-23 14:02:18

因为字符数组末尾有 \0


by Kedit2007 @ 2023-10-23 14:29:51

C 风格字符串数组有一个终止字符。同时在 luogu 提交时不应当写 system("pause")


|