Откуда появляется это странное число?

#include <iostream>
#include <vector>
using namespace std;

int main(){
    int x;
    cin >> x;
    vector<int> v1;
    for (int i=0; i<x; i++){
        v1.push_back(0);
        cin >> v1[i];
    }
    int y = x / 2;
    y = y * 2;
    int temp;
    for (int i = 0; i < y; i+=2){
        temp = v1[i];
        v1[i] = v1[i+1];
        v1[i+1] = temp;
    }
    for (int i = 0; i <= x; i++){
        cout << v1[i];
    }
    
}

Программа должна переставлять элементы массива. Ссылка на таск - https://informatics.msk.ru/mod/statements/view.php...
И да, работает верно, но в конце ответа всегда выходит и такое число = -1163005939. Что я сделал не так?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Читайте код внимательно:
Ввод:
for (int i=0; i<x; i++){

Вывод:
for (int i = 0; i <= x; i++){

У вас там <= в конце. Из-за этого идет обращение к элементу по индексу x, за границей массива. И оттуда выводится какой-то мусор - это и есть ваше странное число.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы