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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2015, 05:35   #1
tisit
Пользователь
 
Регистрация: 15.12.2014
Сообщений: 24
По умолчанию Перебор массива

Выполнил все кроме одного, как исключить вывод отрицательных элементов в обратном порядке, чтобы они не выводились
Код:
#include <iostream>
using namespace std;

int main()
{
	setlocale(0, "");
	int v[10]; // выделяем память
	int  n, pol;// присваиваем и инициализируем
	cout << "Задайте количество элементов массива: ";
	cin >> n;
	cout << "Задайте целые числа для заполнения массива: ";
	for (int i=0; i<n; i++)
	{	
		cin >> v[i];
		cout  <<  v[i] << "\t";	
	}
    cout << "\nВ обратном порядке\n";	
	for (int i = n-1; i >= 0; i--)
	{		 
        cout << v[i] << "\t";
	}
	cout << "\n";
	system("pause");
	return 0;
}
Изображения
Тип файла: jpg 123123123132131231sdgsdgs.jpg (13.9 Кб, 123 просмотров)
tisit вне форума Ответить с цитированием
Старый 29.11.2015, 05:45   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вообще-то вы не получаете новый массив, а только выводите элементы исходного массива. Чтобы получить только положительные, просто добавьте проверку if (v[i] > 0) перед выводом элемента.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.11.2015, 05:46   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
как исключить вывод отрицательных элементов
т.е. об условном операторе вы не слышали?
p51x вне форума Ответить с цитированием
Старый 29.11.2015, 05:52   #4
tisit
Пользователь
 
Регистрация: 15.12.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
т.е. об условном операторе вы не слышали?
знаю про ветвление, но наверно не в то место его записывал. Спать наверно нужно идти, а то совсем уже туплю

Цитата:
Сообщение от BDA Посмотреть сообщение
Вообще-то вы не получаете новый массив
в смысле, а как его получать? не совсем пойму

Последний раз редактировалось Stilet; 29.11.2015 в 09:53.
tisit вне форума Ответить с цитированием
Старый 29.11.2015, 07:36   #5
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Я например сделал бы так.
При вводе элементов в исходный массив подсчитывал количество положительных чисел.
Например каким-нибудь счетчиком count.
Затем, после ввода создавал новый массив размером count.
И следующим циклом начиная с конца заполнял новый массив положительными числами.
Идея понятна?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 29.11.2015, 17:22   #6
tisit
Пользователь
 
Регистрация: 15.12.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Я например сделал бы так.
При вводе элементов в исходный массив подсчитывал количество положительных чисел.
Например каким-нибудь счетчиком count.
Затем, после ввода создавал новый массив размером count.
И следующим циклом начиная с конца заполнял новый массив положительными числами.
Идея понятна?
Ну вот сделал подсчет положительных элементов, и как затем создать массив размером pol?
Код:
#include <iostream>
using namespace std;

int main()
{
	setlocale(0, "");
	int v[10]; // выделяем память
	int  n, pol=0;// присваиваем и инициализируем
	
	cout << "Задайте количество элементов массива: ";
	cin >> n;
	cout << "Задайте целые числа для заполнения массива: ";
	for (int i=0; i<n; i++)
	{	
		cin >> v[i];
		if (v[i] >= 0) pol += 1; // подсчет кол-ва положительных элементов
		cout  <<  v[i] << "\t";	
	}
    cout << "\nВ обратном порядке\n";	
	for (int i = n-1; i >= 0; i--)
	{	
		if (v[i] > 0)
        cout << v[i] << "\t";
	}
	cout << "\n";
	system("pause");
	return 0;
}
tisit вне форума Ответить с цитированием
Старый 29.11.2015, 22:20   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
int n;
cin >> n;
int *arr = new int[n];
//что-то делаем
delete[] arr;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор всевозможных состояний(конфигураций) массива alex_31 Общие вопросы C/C++ 2 17.11.2015 17:22
Перебор всех значений двумерного массива photozaz Общие вопросы по Java, Java SE, Kotlin 4 12.10.2014 05:01
Перебор вариантов из элементов массива Taranov Паскаль, Turbo Pascal, PascalABC.NET 2 20.04.2013 22:01
перебор массива TYS Помощь студентам 1 18.05.2012 07:06
Создание и перебор многомерного массива regman PHP 2 27.10.2009 11:29