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

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

Войти
Регистрация
Восстановить пароль
 
C_T_A_P_M_E_X
2 / 2 / 0
Регистрация: 12.10.2012
Сообщений: 10
#1

Сравнение 3 чисел - C++

24.12.2013, 18:42. Просмотров 3270. Ответов 11
Метки нет (Все метки)

Всем привет))
В колледже задали задание: написать программу, которая сравнивает 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
 
int main() {
    int x, y, z, Max;
 
    cout << "Введите число x: ";
    cin >> x;
    cout << endl << "Введите число y: ";
    cin >> y; 
    cout << endl << "Введите число z: ";
    cin >> z;
    
    cout << "Способ №1" << endl;
    if(x > y) {
        if(x > z) Max = x;
        else Max = z;
    }
    else {
        if(y > z) Max = y;
        else Max = z;
    }
    cout << "Самое большое число - " << Max << endl;
    
    cout << "Способ №2" << endl;
    if(x > y && x > z) Max = x;
    if(y > x && y > z) Max = y;
    else Max = z; 
    cout << "Самое большое число - " << Max << endl; 
 
 
    cout << "Способ №3" << endl;
    if(x > y) Max = x;
    else Max = y;
    if(Max < z) Max = z;
    cout << "Самое большое число - " << Max << endl;
 
 
    cout << "Способ №4" << endl;
    Max = (x > y)? x : y;
    Max = (Max > z)? Max : z; 
    cout << "Самое большое число - " << Max << endl;
 
 
    system('pause');
    return 0;
}
У меня вопрос по четвертому способу, можно ли записать это в одно выражение и если можно то как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 18:42     Сравнение 3 чисел
Посмотрите здесь:

Сравнение чисел - C++
Есть у меня 2 числа: 3.1000000000000017 и 3.1000000000000000 Они как бы равны, но не получается их в блоке if сравнить. Как их...

Сравнение чисел - C++
дан 40 число если число меньше 25 надо прибавить 10. можете помочь

Сравнение чисел. - C++
Вообщем нужно ввести с клавы 3 числа. Нужно чтобы прога вывела их в порядке max, min, middle. В голову кроме if(max&lt;min){}ничего не...

Сравнение чисел - C++
Привет всем!Люди помогите написать программ,которая сравнивает три числа и выдает наибольшее и наименьшее из них.Задача из книги Дейтелов. ...

Сравнение чисел - C++
Скажите, пожалуйста, логику сравнения трёх чисел на языке алгоритма, чтобы рез-т был таким: первое &gt; второе &gt; третье

Сравнение двух чисел - C++
Здравствуйте. Мне нужно решить простенькую задачу - нужно найти результат выражения c=a/b. Но имеется определенное условие - результат...

сравнение целых чисел - C++
всем привет)))может быть вопрос слишком простым покажется для ВАС!!! Допусим мы имеем следующий код: 1)Вариант 1 int a=11; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
24.12.2013, 18:57     Сравнение 3 чисел #2
Второй способ не катит.
Проверь алгоритм.
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
24.12.2013, 18:57     Сравнение 3 чисел #3
В одно выражение
C++
1
Max = max( x, max(y,z) );
max(a,b) - встроенная функция. Возвращает максимальное число из a и b
Donet
21 / 21 / 2
Регистрация: 19.11.2013
Сообщений: 74
24.12.2013, 19:00     Сравнение 3 чисел #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    cout << "Способ №5" << endl;
    switch ( x > y ) {
    case 1:
        Max = x;
      break;
    case 0:
        Max = y;
      break;
    }
    switch ( Max < z ) {
    case 1:
        Max = z;
      break;
    case 0:
      break;
    } 
    cout << "Самое большое число - " << Max << endl;
katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
24.12.2013, 19:02     Сравнение 3 чисел #5
По сабжу:

C++
1
2
3
    cout << "Способ №4" << endl;
    Max = (x > y)? ( (x > z)? x : z ) : ( (y > z)? y : z );
    cout << "Самое большое число - " << Max << endl;
Donet
21 / 21 / 2
Регистрация: 19.11.2013
Сообщений: 74
24.12.2013, 19:08     Сравнение 3 чисел #6
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
    cout << "Способ №6" << endl;
    switch ( x > y ) {
    case 1:
        switch ( x > z ) {
        case 1:
            Max = x;
          break;
        case 0:
            Max = z;
          break;
        }
      break;
    case 0:
        switch ( y > z ) {
        case 1:
            Max = y;
          break;
        case 0:
            Max = z;
          break;
        }
      break;
    } 
    cout << "Самое большое число - " << Max << endl;
katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
24.12.2013, 19:08     Сравнение 3 чисел #7
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// [url]http://www.cyberforum.ru/cpp-beginners/thread1055154.html[/url]
/*
 *   Всем привет))
 *   В колледже задали задание: написать программу, которая сравнивает 3 числа. Три варианта я сделал:
 */
 
#include <iostream>
using namespace std;
 
int main() {
    int x, y, z, Max;
 
    cout << "Введите число x: ";
    cin >> x;
    cout << endl << "Введите число y: ";
    cin >> y;
    cout << endl << "Введите число z: ";
    cin >> z;
 
    cout << "Способ №1" << endl;
    if(x > y) {
        if(x > z) Max = x;
        else Max = z;
    }
    else {
        if(y > z) Max = y;
        else Max = z;
    }
    cout << "Самое большое число - " << Max << endl;
 
    cout << "Способ №2" << endl; // Исправлено!
    if(x > y && x > z)
    {
        Max = x;
    }
    else if (x > y && x < z)
    {
        Max =z;
    }
    else if(y > x && y > z)
    {
        Max = y;
    }
    else Max = z;
    cout << "Самое большое число - " << Max << endl;
 
 
    cout << "Способ №3" << endl;
    if(x > y) Max = x;
    else Max = y;
    if(Max < z) Max = z;
    cout << "Самое большое число - " << Max << endl;
 
 
    cout << "Способ №4" << endl; // Исправлено!
    Max = (x > y)? ( (x > z)? x : z ) : ( (y > z)? y : z );
    cout << "Самое большое число - " << Max << endl;
 
 
//    system('pause'); // У меня нет такого метода.
    return 0;
}
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
24.12.2013, 19:08     Сравнение 3 чисел #8
4-м способом:
C++
1
Max = (Max = x > y ? x : y) > z ? Max : z;
Вариант с std::max в C++11:
C++
1
Max = std::max({a, b, c});
C_T_A_P_M_E_X
2 / 2 / 0
Регистрация: 12.10.2012
Сообщений: 10
24.12.2013, 20:05  [ТС]     Сравнение 3 чисел #9
Всем спасибо))) Особенно порадовали дополнительные варианты)))
В итоге у меня получился вот такой вот код:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian");
    int x, y, z, Max;
 
    cout << "Введите число x: ";
    cin >> x;
    cout << endl << "Введите число y: ";
    cin >> y; 
    cout << endl << "Введите число z: ";
    cin >> z;
    
    cout << "\nСпособ №1";
    if(x > y) {
        if(x > z) Max = x;
        else Max = z;
    }
    else {
        if(y > z) Max = y;
        else Max = z;
    }
    cout << "\nСамое большое число - " << Max << endl;
    
    cout << "\nСпособ №2";
    if(x > y && x > z) Max = x;
    if(y > x && y > z) Max = y;
    if(z > x && z > y) Max = z; 
    cout << "\nСамое большое число - " << Max << endl; 
 
 
    cout << "\nСпособ №3";
    if(x > y) Max = x;
    else Max = y;
    if(Max < z) Max = z;
    cout << "\nСамое большое число - " << Max << endl;
 
 
    cout << "\nСпособ №4";
    Max = (x > y)? x : y;
    Max = (Max > z)? Max : z; 
    cout << "\nСамое большое число - " << Max << endl;
 
    cout << "\nСпособ №5";
    switch (x > y) {
    case 1:
        Max = x;
        break;
    case 0:
        Max = y;
      break;
    }
    switch (Max < z) {
        case 1: Max = z;
        break;
        case 0: break;
    } 
    cout << "\nСамое большое число - " << Max << endl;
 
    cout << "\nСпособ №6";
    switch (x > y) {
    case 1: switch (x > z) {
            case 1: Max = x;
            break;
            case 0: Max = z;
            break;
    }
    break;
    case 0: switch ( y > z ) {
            case 1: Max = y;
            break;
            case 0: Max = z;
            break;
    }
    break;
    } 
    cout << "\nСамое большое число - " << Max << endl;
 
    system("pause");
    return 0;
}
Donet
21 / 21 / 2
Регистрация: 19.11.2013
Сообщений: 74
24.12.2013, 20:52     Сравнение 3 чисел #10
Я рад что мои варианты подошли...
Xorazm
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 31
22.06.2017, 03:09     Сравнение 3 чисел #11
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
29
30
31
32
#include <stdio.h>
#define ANSI_COLOR_RED     "\x1b[31m"
#define ANSI_COLOR_GREEN   "\x1b[32m"
#define ANSI_COLOR_YELLOW  "\x1b[33m"
#define ANSI_COLOR_BLUE    "\x1b[34m"
#define ANSI_COLOR_MAGENTA "\x1b[35m"
#define ANSI_COLOR_CYAN    "\x1b[36m"
#define ANSI_COLOR_RESET   "\x1b[0m"
    int main(){
 int mas[5];
 int min,max;
 printf("\tВведите любое число:\n");
 for(int i=0;i<5;i++){
 scanf("%d", &mas[i]);
 }
 
 min=mas[0];
 
 for(int i=0;i<5;i++){
 if(min>mas[i]) min=mas[i];
 }
 
 max=mas[0];
 
 for(int i=0;i<5;i++){
 if(max<mas[i]) max=mas[i];
 }
 
 printf(ANSI_COLOR_RED     "Максимум:%d" ANSI_COLOR_RESET"\n",max);
 printf(ANSI_COLOR_BLUE    "Минимум:%d"    ANSI_COLOR_RESET "\n",min);
 return 0;
}
Добавил цвет для прикола!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2017, 03:13     Сравнение 3 чисел
Еще ссылки по теме:

Сравнение вещественных чисел - C++
Привет, ребят! Нужна ваша мудрость. На днях думал о реализации класса complex&lt;class scalar&gt; из std и о реализации класса 3D-точек,...

Не работает сравнение чисел - C++
void masto1(int &amp;m,int r1,int b1){ int *c1; for(c1=b1;c1&lt;=r1;c1++){m=0;} } void masto2(int &amp;m,int r1,int b1,int r2,int b2){ ...

Сравнение целых чисел - C++
Два практически одинаковых кода, но один работает, а другой нет, с математической точки все отлично, а вот программная хромает, подскажите...

Сравнение длинных чисел >, < - C++
Доброго времени суток всем. помогите пожалуйста прояснить алгоритм сравнения относительно длинных чисел (например 2 в 512 степени) ,...

Сравнение двух чисел - C++
Товарищи,не совсем понимаю как, разработать программу, осуществляющую перевод пары произвольных целых чисел из десятичной системы...


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

Или воспользуйтесь поиском по форуму:
oldnewyear
22.06.2017, 03:13     Сравнение 3 чисел
  #12

Не по теме:

3.5 года понадобилось. Неплохо, неплохо

Yandex
Объявления
22.06.2017, 03:13     Сравнение 3 чисел
Ответ Создать тему
Опции темы

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