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

Liori

New Member
30.11.2014
3
0
#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;
}
 

Whatka

Well-Known Member
09.10.2011
428
4
24
Минск
#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);
}
}