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

Заменить минимальные элементы списка числом 1 - C++

Восстановить пароль Регистрация
 
FrankyMO
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 90
17.01.2014, 06:37     Заменить минимальные элементы списка числом 1 #1
Помогите, пожалуйста, решить задачу в С++.

Сформировать список из натуральных чисел. Заменить минимальные элементы списка числом 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 06:37     Заменить минимальные элементы списка числом 1
Посмотрите здесь:

C++ Заменить элементы массива, кратные 9 на нечетных местах, числом 10
Заменить все минимальные элементы противоположными по значению C++
Заменить все минимальные элементы на противоположные. C++
Убрать элементы из списка с нечетным числом, не удаляя C++
C++ В массивеC(N) заменить все элементы большие 10 числом 99
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
17.01.2014, 11:39     Заменить минимальные элементы списка числом 1 #2
Цитата Сообщение от FrankyMO Посмотреть сообщение
Помогите, пожалуйста, решить задачу в С++.

Сформировать список из натуральных чисел. Заменить минимальные элементы списка числом 1.
Обязательно использовать список?
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
17.01.2014, 11:56     Заменить минимальные элементы списка числом 1 #3
Как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
 
int main()
{
 std::list<int> list;
 int var;
 while(std::cin >> var)
     list.push_back(var);
 
 int inputVar = 0;
 std::list<int>::iterator it = std::min_element(list.begin(), list.end());
 int min = *it;
 
 while(it != list.end())
 {
    if(*it == min)
       *it = inputVar;
   ++it;
 }
 
 std::copy(list.begin(), list.end(), std::ostream_iterator<int>(std::cout, " "));     
 
  system("PAUSE");
  return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
17.01.2014, 13:25     Заменить минимальные элементы списка числом 1 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <algorithm>
#include <iterator>
#include <iostream>
#include <list>
 
int main()
{
    size_t listSize;
    std::cout << "List size: ";
    std::cin >> listSize;
 
    std::list <size_t> list;
    for (size_t i = 0; i < listSize; i++) {
        size_t currentListElement;
        std::cin >> currentListElement;
        list.push_back(currentListElement);
    }
 
    size_t minimalListElement(*std::min_element(list.begin(), list.end()));
    std::for_each(list.begin(), list.end(), [minimalListElement](size_t &currentListElement) -> int {
        return currentListElement = currentListElement == minimalListElement ? 1 : currentListElement;
    });
    std::cout << "Result list: " << std::endl;
    std::copy(list.begin(), list.end(), std::ostream_iterator <size_t> (std::cout, " "));
 
    std::system("pause >> temp");
    return 0;
}
Yandex
Объявления
17.01.2014, 13:25     Заменить минимальные элементы списка числом 1
Ответ Создать тему
Опции темы

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