Сформировать Новый Массив Из Элементов Массива, Значения Которых = 0

Тема в разделе "Общие вопросы по С и С++", создана пользователем Liori, 30 ноя 2014.

  1. Liori

    Liori New Member

    Регистрация:
    30 ноя 2014
    Сообщения:
    3
    Симпатии:
    0
    Помогите! Как исправить код? Ошибка (выход за границы массива)

    Код (C++):
    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    using namespace std;


    int main(int argc, char* argv[])
    {
    int N;
    cout << "Vvod: ";
    cin >> N;
    vector<int> mass(N);

    for (int i = 0; i < N;i++)
    {

    cin >> mass[i];

    }
    int k = 0;
    vector<int> mass2(k);

    for (int i = 0; i < N; i++)
    {
    if (mass[i] == 0)
    {
    k++;
    for (int j = 0; j < k; j++)
    {
    mass2[j] = i;
    }
    }

    }

    cout << "\nVivod: \n";
    for (int i = 0; i < k;i++)
    {
    cout << mass2[k] << " ";

    cout << "\n";

    }
    system("pause");
    return 0;
    }
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    замени в последнем цикле индекс
    Код (C++):
     cout << mass2[k] << " ";
    не k а i.
    Для добавления элемента используй функцию push_back(...)

    Код (C++):
       
    for (int i = 0; i < N; i++)
    {
    if (mass[i] == 0)
    {
    k++;
    mass2.push_back(i);
    }
    }
     
Загрузка...

Поделиться этой страницей