Почему вывод моего кода идет неправильно в конце? - PullRequest
0 голосов
/ 10 ноября 2019

Сегодня я попытался настроить vscode для компиляции c ++, и после компиляции простой программы cpp я увидел, что вывод неправильный, и я понятия не имею, почему.

Вот мой код: https://pastebin.com/iLSVHW7T

#include <iostream>

using namespace std;

int main(){
    int x[3],i,n;
    cin>>n;
    for(i=0;i<=n;i++)
    cin>>x[i];
    for(i=0;i<=n;i++)
    cout<<x[i]<<" ";
}

This image shows what is going wrong.

Спасибо за ваше время.

1 Ответ

1 голос
/ 10 ноября 2019

Проблема в том, что <= используется в циклах for. Первый элемент массива в C ++ и C индексируется с 0, поэтому i должно быть меньше, чем n, чтобы избежать переполнения.

В вашем коде все элементы от 0 до 3 читаются. Но максимальное количество элементов для этого массива равно 2, поэтому вы читаете еще один элемент, который не имеет реального значения.

Поэтому замените <= на <.

...