Форум программистов, компьютерный форум CyberForum.ru

Задача на векторы, заменить все максимальные элементы нулями - C++

Восстановить пароль Регистрация
 
tanatarova
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
26.05.2014, 21:22     Задача на векторы, заменить все максимальные элементы нулями #1
дана последовательность целых чисел. заменить все максимальные элементы нулями.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2014, 21:22     Задача на векторы, заменить все максимальные элементы нулями
Посмотрите здесь:

в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0. C++
C++ C++, заменить все максимальные элементы нулями
C++, Заменить все максимальные элементы нулями (при пом-щи vector) C++
Заменить максимальные элементы последовательности нулями C++
Поменять местами первый и последний элементы. Все единичные элементы массива заменить нулями C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
26.05.2014, 21:33     Задача на векторы, заменить все максимальные элементы нулями #2
C++
1
2
3
4
std::vector<int> myvector;
//.... заполняешь
int maxElem = *max_element(myvector.begin(), myvector.end());
replace_if(myvector.begin(), myvector.end(), [&maxElem](int e) { return e==maxElem; }, 0);
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.05.2014, 22:07     Задача на векторы, заменить все максимальные элементы нулями #3
monolit, тут вполне можно обойтись версией без _if. И, как следствие, без лямбды, которая тянет за собой необходимость наличия C++11.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
26.05.2014, 23:24     Задача на векторы, заменить все максимальные элементы нулями #4
Tulosba, обратного я ведь не утверждаю) И я не заметил в вопросе ТС каких-либо ограничений) Да вам и так должна быть понятна причина такого именно такого, "слегка" усложненного варианта.

Добавлено через 26 секунд
Кликните здесь для просмотра всего текста
просто еще запутанней в голову сразу не пришло
tanatarova
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
27.05.2014, 18:43  [ТС]     Задача на векторы, заменить все максимальные элементы нулями #5
а можно весь код?
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
27.05.2014, 19:29     Задача на векторы, заменить все максимальные элементы нулями #6
А что значит весь? Тут как раз то, что нужно. Разве что заполнения нет, и вывода. Это даже можно к обычным массивам применять, к int*, не обязательно вектора использовать.
tanatarova
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
27.05.2014, 19:37  [ТС]     Задача на векторы, заменить все максимальные элементы нулями #7
вот мой код, но он не заменяет ничего, может ошибка есть?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool maxElem(int x)
{ return (x=maxElem);}
int main()
{
vector <int> iVec;
int x, n;
cout<<"n=";
cin>>n;
for (int i=0; i<n;i++)
{
cout<<"vvedite elem c num"<<i<<endl;
cin>>x;
iVec.push_back(x); }
replace_if (iVec.begin(),iVec.end(),maxElem,0);
for(vector <int>::iterator iter=iVec.begin();iter<iVec.end();iter++)
cout<<*iter<<endl;
return 0;
}
Добавлено через 31 секунду
нужны именно вектора
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 21:25     Задача на векторы, заменить все максимальные элементы нулями
Еще ссылки по теме:

Массивы. Заменить все максимальные элементы нулями( C++
C++ Заменить нулями все элементы
C++ Дан двумерный массив. Максимальные элементы строк заменить нулями и вывести на экран

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
27.05.2014, 21:25     Задача на векторы, заменить все максимальные элементы нулями #8
Цитата Сообщение от tanatarova Посмотреть сообщение
replace_if (iVec.begin(),iVec.end(),maxElem,0);
for(vector <int>::iterator iter=iVec.begin();iter<iVec.end();iter++)
cout<<*iter<<endl;
за цикл вынеси, черт возьми...
Yandex
Объявления
27.05.2014, 21:25     Задача на векторы, заменить все максимальные элементы нулями
Ответ Создать тему
Опции темы

Текущее время: 02:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru