Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2014, 18:12   #1
Liori
 
Регистрация: 30.11.2014
Сообщений: 5
По умолчанию Сформировать новый массив из элементов массива, значения которых = 0

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

Код:
#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;
}
Liori вне форума Ответить с цитированием
Старый 30.11.2014, 19:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
int k = 0;
	vector<int> mass2(k);
И каков будет размер вектора?

Код:
for (int i = 0; i < k;i++)
	{
			cout <<  mass2[k] << " ";
Вы уверены, что хотели здесь k?
Вы уверены, что элементы k вообще будет при нумерации с 0?
p51x вне форума Ответить с цитированием
Старый 02.01.2015, 17:54   #3
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
int main()
{
	setlocale(LC_ALL,"Rus");
	srand(time(NULL));
	int *arr, *res, j = 0, k = 0, n = 0;
	do
	{
		cout << "Введите рамер массива: ";
		cin >> n;
	}
	while(n <= 0);
	arr = new int[n];
	res = new int[n];
	for(int i = 0; i < n; i++)
		*(arr + i) = rand() % 5;
	cout << "\nМассив имеет вид: ";
	for(int i = 0; i < n; i++)
		cout << *(arr + i) << " ";
	for(int i = 0; i < n; i++)
	{
		if(*(arr + i) == 0)
		{
			k = 1;
			*(res + j) = *(arr + i);
			j++;
		}
	}
	if(k)
	{
		cout << "\n\nНовый массив имеет вид: ";
		for(int i = 0; i < j; i++)
			cout << res[i] << " ";
	}
	else
		cout << "\n\nВ массиве нет нулей!";
	delete [] arr;
	delete [] res;
	getch();
	return 0;
}
помог - жми на весы
Chainik! вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать новый массив С из элементов массивов А и В по правилу mezzogiorno Помощь студентам 2 19.10.2014 13:36
одномерный массив. найти номера тех элементов массива, значения которых совпадают с числом 12 (Delphi) Daniyar22 Помощь студентам 6 20.05.2014 12:54
Дан массив X(N,M).Найти номера столбцов массива,все элементы которых четны. Из полученных значений сформировать одномерный массив. darwin1 Паскаль, Turbo Pascal, PascalABC.NET 3 16.03.2014 13:31
(С/С++) Сформировать новый массив из положительных нечетных элементов заданного массива Р(20) Chak1483 Помощь студентам 2 02.12.2011 12:05
(С/С++) Сформировать новый массив из положительных нечетных элементов заданного массива Р(20) Chak1483 Общие вопросы C/C++ 0 01.12.2011 22:05