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

Есть четыре числа нужно выбрать наим. и наиб. - C++

Восстановить пароль Регистрация
 
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
12.09.2010, 18:44     Есть четыре числа нужно выбрать наим. и наиб. #1
Здравствуйте, в консоли пользователь вводит числа a, b, c, d

Как легче всего выбрать наибольшее и наименьшее, не делая кучи проверок?
заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2010, 18:44     Есть четыре числа нужно выбрать наим. и наиб.
Посмотрите здесь:

C++ Поменять местами наим и наиб.
C++ Даны четыре вещественных числа от нуля. Проверить: образуют ли данные числа геометрическую прогрессию.
есть числа нужно их заменить на другие числа из таблицы!! C++
C++ Даны четыре целых числа, одно из которых отлично от трех других, равных между собой. Определить порядковый номер числа, отличного от остальных. на C++
Даны четыре целых числа, одно из которых отлично от трех других, равных между собой. Вывести порядковый номер этого числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
12.09.2010, 18:46     Есть четыре числа нужно выбрать наим. и наиб. #2
min(min(a,b),min(c,d))
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
12.09.2010, 18:47     Есть четыре числа нужно выбрать наим. и наиб. #3
vvsh, Легче всего так. через стл правда еще легче.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    const int size=4;
    int Arr[size];
    for(int i=0; i<size; ++i)
        std::cin>>Arr[i];
    int max=Arr[0];
    int min=Arr[0];
    for(int i=0; i<size; ++i)
    {
         if(max<Arr[i])
             max=Arr[i];
         if(min>Arr[i])
             min=Arr[i];
    }
    std::cout<<"Min= "<< min <<"Max= "<< max <<'\n';
    return 0;
}
Как и сказал Хохол действительно легче всего так. Шаблоны можно убрать. Тип T поменять на int либо на какой то другой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
template<class T>
T min(T a, T b)
{
   return a<b?a:b;
}
 
template<class T>
T max(T a, T b)
{
   return a>b?a:b;
}
 
int main()
{
   int a=1, b=2, c=3, d=4;
   std::cout<<min(min(a,b), min(c,d));
   std::cout<<' '<<max(max(a,b), max(c,d))<<'\n';
   return 0;
}
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
12.09.2010, 19:23     Есть четыре числа нужно выбрать наим. и наиб. #4
Lavroff, а зачем вы написали min и max, которые и так есть в std?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
12.09.2010, 19:25     Есть четыре числа нужно выбрать наим. и наиб. #5
Хохол, Не всегда можно пользоваться STL. Тем более сомневаюсь, что автор сможет объяснить что такое эти STL-функции. Алгоритмы min/max это конечно прекрасно, но все же реализация этих функций самому, не делает код хуже
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
12.09.2010, 19:56  [ТС]     Есть четыре числа нужно выбрать наим. и наиб. #6
Дело в том что я в универе только на 1 курсе и мы только начали c++, и мы еще какбы не разбирали функции. я конечно это знаю но не должен как бы)

Добавлено через 4 минуты
Хохол, спасибо, отличный способ я просто даже не знал об этих функциях..

Добавлено через 5 минут
вот что получилось, всё правильно? :

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
#include <iostream.h>
 
min(float a, float b)
{
    return a<b ? a : b;
}
 
max(float a, float b)
{
    return a>b ? b : a;
}
 
main()
{
    float a, b, c, d;
    
    cout << "Введите четыре числа: ";
    cin >> a >> b >> c >> d;
    
    cout << "Наименьшее" << min(min(a, b), min(c, d)) << endl;
    cout << "Наибольшее" << max(max(a, b), max(c, d)) << endl;
 
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
12.09.2010, 19:56     Есть четыре числа нужно выбрать наим. и наиб. #7
vvsh, да
Кроме return a>b ? b : a;
тут все же return a>b?a:b;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2010, 20:01     Есть четыре числа нужно выбрать наим. и наиб.
Еще ссылки по теме:

C++ Рекурсия. Нужно найти наим.общее кратное массива
C++ Десять сортировок. Четыре реализовал, подскажите, какие еще есть?
Из массива выбрать четыре наибольших значения C++

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

Или воспользуйтесь поиском по форуму:
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
12.09.2010, 20:01  [ТС]     Есть четыре числа нужно выбрать наим. и наиб. #8
Цитата Сообщение от Lavroff Посмотреть сообщение
vvsh, да
Кроме return a>b ? b : a;
тут все же return a>b?a:b;
да. спасибо. почему-то ошибся...
Yandex
Объявления
12.09.2010, 20:01     Есть четыре числа нужно выбрать наим. и наиб.
Ответ Создать тему
Опции темы

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