Задача взята с сайта E-Olymp.
Условие:
Дано три различных числа [latex]a[/latex], [latex]b[/latex], [latex]c[/latex]. Вывести среднее из них.
Входные данные
Числа [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] целые и по модулю не превышают 1000.
Выходные данные
Единственное число — ответ на задачу.
Тесты
I число ([latex]a[/latex]) | II число ([latex]b[/latex]) | III число ([latex]c[/latex]) | среднее |
22 | 20 | 21 | 21 |
22 | 21 | 20 | 21 |
21 | 22 | 20 | 21 |
20 | 21 | 22 | 21 |
21 | 20 | 22 | 21 |
20 | 22 | 21 | 21 |
Решение<
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> using namespace std; int main() { int a,b,c; cin >> a >> b >> c; cout << (a>c?(c>b?(to_string(c)):(a>b?(to_string(b)): (to_string(a)))):(b<c?(a<b?(to_string(b)):(to_string(a))):(to_string(c)))); return 0; } |
Для проверки чисел и вывода используется тернарный оператор. 1) Если первое число ([latex]a[/latex]) больше третьего числа ([latex]c[/latex]), переходим к проверке 2) [latex]c[/latex]>[latex]b[/latex] ([latex]b[/latex] второе число. ) Если это так, среднее число [latex]c[/latex]. Если с не больше [latex]b[/latex], проверяем, больше ли [latex]a[/latex] чем [latex]b[/latex]. Если это так, то среднее число [latex]b[/latex], если нет среднее [latex]a[/latex].
Вернемся к проверке 1). [latex]a[/latex] < [latex]c[/latex], проверяем 3) [latex]b[/latex]<[latex]c[/latex]? Если да, проверяем [latex]a[/latex]<[latex]b[/latex]. Если да, то среднее [latex]b[/latex]. Если нет, среднее [latex]a[/latex]. В случае, если в проверке 3) [latex]b[/latex]>[latex]c[/latex], среднее [latex]c[/latex].
Для перехода к странице на E-Olimp с полностью выполненным данным заданием щелкните тут.
Ссылка на решение на Ideone
Молодец. Очень аккуратно сформулированы все эти вложенные условия.
Нужно немного поправить
— Замените все эти (to_string(b)) и т.п. просто на b, a или c.
— Дайте ссылку на свой код решения на сайте ideone.com
— Исправьте ключевые слова. «Среднее трех чисел» только создаёт путаницу.