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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2011, 19:15   #1
LordTor
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 11
Восклицание Одномерный массив

Люди кто знает как это делать с С++ столкнулся в первые по этому голова уже кипит.
Даны целые числа a1, …, a30. Если в данной последовательности ни
одно четное число не расположено после нечетного, то распечатать все
отрицательные члены последовательности, иначе – все положительные.
Порядок следования чисел в обоих случаях заменяется на обратный.
LordTor вне форума Ответить с цитированием
Старый 02.06.2011, 19:42   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
#include <iostream>
#include <vector>
#include <functional>
#include <iterator>
#include <algorithm>

using namespace std;


int main()
{
	vector<int> data(30);
	cin >> data[0];

	bool good = false;
	for(vector<int>::size_type i = 1; i < data.size(); i++)
	{
		cin >> data[i];
		if(data[i]%2 == 0 && data[i-1]%2)
			good = true;
	}
	for(vector<int>::reverse_iterator iter = data.rbegin(); iter != data.rend(); iter++)
		if(good && *iter > 0)
			cout << *iter << " ";
		else if(!good && *iter < 0)
			cout << *iter << " ";

	return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 02.06.2011, 20:18   #3
LordTor
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 11
По умолчанию

а можно по подробней я только изучаю и хочу понять
LordTor вне форума Ответить с цитированием
Старый 02.06.2011, 20:22   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
#include <iostream>
#include <vector>
#include <functional>
#include <iterator>
#include <algorithm>

using namespace std;


int main()
{
	vector<int> data(30); // Объявляем вектор (массив), задаем размер 30
	cin >> data[0]; // Читаем первый элемнт, чтобы потом было удобней сразу проверять на следование четного после нечетного при вводе

	bool good = false; \\ Есть ли четный после нечетного
	for(vector<int>::size_type i = 1; i < data.size(); i++) // Читаем остальные 29 элемнтов
	{
		cin >> data[i];
		if(data[i]%2 == 0 && data[i-1]%2) // Если четный после нечетного
			good = true;
	}
	for(vector<int>::reverse_iterator iter = data.rbegin(); iter != data.rend(); iter++) // Выводим, начиная с последнего
		if(good && *iter > 0) // Если был четный после нечетного и данный элемент положительный
			cout << *iter << " "; // Печатаем
		else if(!good && *iter < 0) // Иначе, елси не было чет. после нечет. и данный отрицат.
			cout << *iter << " "; // Печатаем

	return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40