程序输出正确的值,但最后崩溃

时间:2015-12-19 20:58:10

标签: c++

#include <iostream>
#include <string>

using namespace std;

int main()
{

    int i;

    int a[14];
    int b[14];

    for (i=0; i<15; i++)
    {

        cin >> a[i];

        b[i]=(a[i] % 37);

    };

    for (i=0; i<15; i++)
    {

        cout << b[i] << "\n";

    };

    return 0;


}

我的程序输入15个值并以模37输出每个值。结果很完美,但由于某些原因我无法弄清楚,程序最终崩溃了(&#34;程序停止工作&#34 ;)

2 个答案:

答案 0 :(得分:7)

在大多数编程语言中,数组索引从0开始。这意味着代码中的索引“13”是最后一个。 您需要将--line-buffered Force output to be line buffered. By default, output is line buffered when standard output is a terminal and block buffered otherwise. 替换为i < 15

i < 14

for (i=0; i < 14; i++) 是第一个元素,0 - 最后一个

答案 1 :(得分:2)

int a[14];表示有14个元素。 但由于迭代从0开始,您将尝试访问不存在的第15个元素。将您的循环更改为< 14