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

  • Автор темы Liori
  • Дата начала
L

Liori

#1
Помогите! Как исправить код? Ошибка (выход за границы массива)

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;
}
 
W

Whatka

#2
замени в последнем цикле индекс
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);
}
}