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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2017, 19:58   #1
ImmortalisNox
Пользователь
 
Регистрация: 05.11.2017
Сообщений: 18
По умолчанию С++ Заменить все отрицательные члены на значение минимального члена, а все положительные - на значение максимального члена

Здраствуйте, прошу помощи с заданием, буду рад за оперативную помощь, ибо времени в обрез. Заранее спасибо.

"Заданные действительные числа x1, x2,. . . , X25. В заданной последовательности заменить все отрицательные члены на значение
минимального члена, а все положительные - на значение максимального члена."

Пока что лишь сделал, чтобы программа выбирала случайные числа, а вот как дальше - не знаю.

Код:
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
	int a = 25, x;
	int masiv[25];
	for (x = 0; x < a; x++)
	{
		masiv[x] = rand() % 200 - 100; 
		cout << masiv[x] << "\t";
	}
	cout << "\n";
}

Последний раз редактировалось ImmortalisNox; 05.11.2017 в 20:06.
ImmortalisNox вне форума Ответить с цитированием
Старый 05.11.2017, 20:49   #2
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Наверное, как то так.
Код:
#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
	std::vector <int> v{ 2, 5, -6, -9, 10, -22 };
	
	auto It = std::minmax_element(v.begin(), v.end());
	std::for_each(v.begin(), v.end(), [It](auto &x) { return x < 0 ? x = *It.first : x = *It.second;  });

	for (auto el : v)
		std::cout << el << "   ";

	system("pause");
}
Мановар вне форума Ответить с цитированием
Старый 05.11.2017, 20:56   #3
ImmortalisNox
Пользователь
 
Регистрация: 05.11.2017
Сообщений: 18
По умолчанию

Спасибо. Но вряд ли смогу проанализировать решение. Можно ли как-то решить это задание без использования библиотек "#include <vector>,
#include <algorithm>"?
ImmortalisNox вне форума Ответить с цитированием
Старый 05.11.2017, 21:12   #4
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Код:
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
	const int a = 25;
	int masiv [a];
	for (size_t i = 0; i < a; i++)
	{
		masiv[i] = rand() % 200 - 100;
		cout << masiv[i] << "\t";
	}
	cout << "\n";

	int MinEl = masiv[0];
	int MaxEl = masiv[0];

	for (size_t i = 0; i < a; i++)
	{
		if (masiv[i] < MinEl)
			MinEl = masiv[i];
		else
			if (masiv[i] > MaxEl)
				MaxEl = masiv[i];
	}
		cout << "Max Element = " << MaxEl << "    " << "Min Element = " << MinEl << endl;

	system("pause");
}
Мановар вне форума Ответить с цитированием
Старый 05.11.2017, 21:46   #5
ImmortalisNox
Пользователь
 
Регистрация: 05.11.2017
Сообщений: 18
По умолчанию

Спасибо! Осталось сделать так, чтобы программа заменяла все отрицательные члены на min, а все положительные на max. Щас попробую сам сделать.
ImmortalisNox вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны целые числа a1, … ,an, k. Если в последовательности a1, … ,an нет ни одного члена со значением k, то все члены ... (на С/С++ burbonjkeee Общие вопросы C/C++ 7 29.12.2013 22:55
Дано линейный целочисленный массив. Заменить в нем все элементы, значение которых меньше некоторог числа К на значение К. Подсчита PASKAL12 Помощь студентам 2 04.12.2013 19:30
Все отрицательные элементы заменить на сумму, а положительные на полусумму предшествующих и последующих элементов этого массива. Progressko Помощь студентам 10 31.10.2013 07:17
Все отрицательные элементы массива А заменить на сумму, а положительные на полусумму предшествующих Lada05 Помощь студентам 1 27.10.2010 15:44