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

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

Войти
Регистрация
Восстановить пароль
 
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55
#1

Сравнение трёх чисел - C++

07.11.2012, 17:22. Просмотров 921. Ответов 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
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
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <cstdio>
#include <cstring>
using namespace std;
 
void answer(int max, int min) {
    if (max == min)
        cout << "Все числа равны.";
    else
        cout << max << " максимальное, " << min << " минимальное.";
}
 
int main() {
    int a, b, c, q;
 
    cout << "Введите три числа:\n";
    cin >> a >> b >> c;
    cout << "\n";
 
    if (a == b) {
        if (a > c)
            answer(a, c);
        else
            answer(c, a);
    }
    else if (b == c) {
        if (b > a)
            answer(b, a);
        else
            answer(a, b);
    }
    else if (a == c) {
        if (a > b)
            answer(a, b);
        else
            answer(a, c);
    }
    else {
        if (a > b && a > c) {
            if (b < c)
                answer(a, b);
            else
                answer(a, c);
        }
        else if (b > a && b > c) {
            if (a < c)
                answer(b, a);
            else
                answer(b, c);
        }
        else if (c > a && c > b) {
            if (a < b)
                answer(c, a);
            else
                answer(c, b);
        }
        else
            cout << "Неучтённый вариант.";
    }
 
    return 0;
}
Протестил все возможные варианты данных, работает. Получается, в лучшем случае (например, 1 1 2) выполнится три операции сравнения, в худшем (1 2 3) - десять. И как теперь понять, хорошая эта реализация или нет? От чего можно вообще отталкиваться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 17:22     Сравнение трёх чисел
Посмотрите здесь:

Определить количество положительных и отрицательных чисел в наборе из трёх чисел - C++
Ввести 3 числа A, B, C. Определить количество положительных и отрицательных чисел в этом наборе. Как её решить, не могу разобраться.

Чётность трёх чисел - C++
Помогите пожалуйста написать программу, которая выводит &quot;Да&quot; или &quot;Нет&quot; в зависимости от того имеют ли три заданных числа одинаковую...

Определение максимального из трёх целых чисел - C++
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию Вот такая ошибка...

Найти наименьшее из трёх заданных чисел - C++
1.12. Данные три числа. Найти наименьшее из них.

Найти наибольшее из трёх заданных чисел - C++
max(x,y,z) и (x,y,z) , как решить помогите плз!

Наименьшее общее кратное трёх чисел - C++
Нужно найти НОК трёх чисел, используя функции Добавлено через 6 минут Вот мой код для нахождения НОК(а,в) через НОД(а,в). Теперь,...

третья степень суммы трёх чисел - C++
Задание было такое: возвести сумму трёх чисел в третью степень. С первой частью я справился, но вот как возвести в степень? Слышал, что для...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Grovello
12 / 12 / 0
Регистрация: 09.06.2012
Сообщений: 92
07.11.2012, 17:27     Сравнение трёх чисел #2
Если хотите проверить живучесть алгоритма сгенерируйте файл с приличным количеством аргументов и посмотрите захелебнется он или нет.
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55
07.11.2012, 17:29  [ТС]     Сравнение трёх чисел #3
Цитата Сообщение от Grovello Посмотреть сообщение
Если хотите проверить живучесть алгоритма сгенерируйте файл с приличным количеством аргументов и посмотрите захелебнется он или нет.
Не понял) Т.е. попробовать сравнить числа порядка 4*10^35?
Grovello
12 / 12 / 0
Регистрация: 09.06.2012
Сообщений: 92
07.11.2012, 17:32     Сравнение трёх чисел #4
Цитата Сообщение от ramses Посмотреть сообщение
Не понял) Т.е. попробовать сравнить числа порядка 4*10^35?
Не дочитал, что для трех чисел, ошибся.
А по сабжу главная задача это свести количество итераций к минимуму.
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55
07.11.2012, 17:46  [ТС]     Сравнение трёх чисел #5
Цитата Сообщение от Grovello Посмотреть сообщение
А по сабжу главная задача это свести количество итераций к минимуму.
Итераций - т.е. условий? Попытаться сократить, обобщить...

Добавлено через 8 минут
Ладно, это слишком широкий вопрос, который требует слишком развёрнутого ответа. Т.е. книжный. Посоветуете что-нибудь типа основ программирования, практических советов и т.п.? Кнута мне ещё рано читать, сложноват, попроще бы что-нибудь.
Grovello
12 / 12 / 0
Регистрация: 09.06.2012
Сообщений: 92
07.11.2012, 17:48     Сравнение трёх чисел #6
Цитата Сообщение от ramses Посмотреть сообщение
Итераций - т.е. условий? Попытаться сократить, обобщить...

Добавлено через 8 минут
Ладно, это слишком широкий вопрос, который требует слишком развёрнутого ответа. Т.е. книжный. Посоветуете что-нибудь типа основ программирования, практических советов и т.п.? Кнута мне ещё рано читать, сложноват, попроще бы что-нибудь.
Итерация это шаг.
Основ программирования или практических советов?
Для первого "Философия С++" Брюса Эккеля
Для второго гугл и форумы.
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55
07.11.2012, 18:26  [ТС]     Сравнение трёх чисел #7
Цитата Сообщение от Grovello Посмотреть сообщение
Основ программирования или практических советов?
Пожалуй, первого. А вообще по программированию что можно почитать?
Grovello
12 / 12 / 0
Регистрация: 09.06.2012
Сообщений: 92
07.11.2012, 19:37     Сравнение трёх чисел #8
Цитата Сообщение от ramses Посмотреть сообщение
Пожалуй, первого. А вообще по программированию что можно почитать?
По общей алгоритмизации? Просто программирование расплывчатое определение.
По си "Философия С++" Брюса Эккеля
По джаве Хорсмена
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55
07.11.2012, 20:04  [ТС]     Сравнение трёх чисел #9
Цитата Сообщение от Grovello Посмотреть сообщение
По общей алгоритмизации?
Ну, наверное, да. Что-нибудь просто написанное.
Grovello
12 / 12 / 0
Регистрация: 09.06.2012
Сообщений: 92
07.11.2012, 20:07     Сравнение трёх чисел #10
Цитата Сообщение от ramses Посмотреть сообщение
Ну, наверное, да. Что-нибудь просто написанное.
К сожалению ничего общего даже не знаю, читал только сугубо ориентированные книги.
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55
07.11.2012, 20:56  [ТС]     Сравнение трёх чисел #11
Жаль. Спасибо и на этом)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 21:31     Сравнение трёх чисел
Еще ссылки по теме:

Функция возвращающая большее из трёх чисел - C++
Разработайте функцию типу int, которая возвращает больше трёх чисел по абсолютному значение. Помогите. Огромное спасибо. :*

Для трёх заданных чисел вычислить максимальное - C++
написать программу которая для трёх заданных чисел вычисляет максимальное. после чего вычисляет значение выражения x=max(x,y,z) -...

Процедура ShiftLeft3 сдвиг влево трёх чисел - C++
#include &lt;iostream&gt; using namespace std; void ShiftLeft3(double &amp; A,double &amp; B,double &amp; C) { double temp = C; C =...

Перебор возможных значений для трёх чисел - C++
Доброго времени суток. Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01...

Из трёх заданных чисел вывести на экран только отрицательные - C++
Даны три целых числа. Вывести на экран те из них, которые являются отрицательными


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

Или воспользуйтесь поиском по форуму:
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.11.2012, 21:31     Сравнение трёх чисел #12
У алгоритма константная сложность, поэтому я бы посоветовал избегать настолько мелочных оптимизаций. Компилятор лучше вас знает, как это реализовать.
Yandex
Объявления
07.11.2012, 21:31     Сравнение трёх чисел
Ответ Создать тему
Опции темы

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