Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tanatarova
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
#1

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

26.05.2014, 21:22. Просмотров 281. Ответов 7
Метки нет (Все метки)

дана последовательность целых чисел. заменить все максимальные элементы нулями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2014, 21:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на векторы, заменить все максимальные элементы нулями (C++):

Заменить все максимальные элементы нулями - C++
в С++ заменить все максимальные элементы нулями

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

Заменить все максимальные элементы последовательности нулями - C++
Дана последовательность чисел. Заменить все максимальные элементы нулями.

Заменить все максимальные элементы нулями (используя vector) - C++
Дана последовательность чисел. Заменить все максимальные элементы нулями. Вот в этой теме я нашла решение =>...

Заменить максимальные элементы последовательности нулями - C++
Заменить максимальные элементы нулями в последовательности целых чисел , используя контейнер типа <vector>, итераторы.

Дан двумерный массив. Максимальные элементы строк заменить нулями и вывести на экран - C++
Доброго времени суток. Подскажите как правильно написать код под такое условие задания: "Дан двумерный массив размерностью NхN....

7
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 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);
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.05.2014, 22:07 #3
monolit, тут вполне можно обойтись версией без _if. И, как следствие, без лямбды, которая тянет за собой необходимость наличия C++11.
0
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
26.05.2014, 23:24 #4
Tulosba, обратного я ведь не утверждаю) И я не заметил в вопросе ТС каких-либо ограничений) Да вам и так должна быть понятна причина такого именно такого, "слегка" усложненного варианта.

Добавлено через 26 секунд
Кликните здесь для просмотра всего текста
просто еще запутанней в голову сразу не пришло
0
tanatarova
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 8
27.05.2014, 18:43  [ТС] #5
а можно весь код?
0
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
27.05.2014, 19:29 #6
А что значит весь? Тут как раз то, что нужно. Разве что заполнения нет, и вывода. Это даже можно к обычным массивам применять, к int*, не обязательно вектора использовать.
0
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 секунду
нужны именно вектора
0
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 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;
за цикл вынеси, черт возьми...
0
27.05.2014, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 21:25
Привет! Вот еще темы с ответами:

в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0. - C++
в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0.

В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию - C++
В одновимірному масиві всі від’ємні елементи замінити нулями і впорядкувати елементи масиву за спаданням.

Поменять местами первый и последний элементы. Все единичные элементы массива заменить нулями - C++
Люди добрые, помогите плиз с задачками. В массиве Р, размерности 150 150. поменять местами первый и последний элементы; все единичные...

Заменить нулями все элементы - C++
Помогите написать код программы.(новичок) Дана действительная квадратная матрица порядка 12. Заменить нулями все её элементы,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru