e-olymp 108. Среднее число

Задача

Дано три различных числа [latex]a[/latex], [latex]b[/latex], [latex]c[/latex]. Вывести среднее из них.

Условие задачи на e-olymp.

Входные данные

Числа  [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] — целые и по модулю не превышают 1000.

Выходные данные

Единственное число — ответ на задачу.

Тесты

 №         a         b          c     Результат
  1         5         7          9              7
  2         7         5          9              7
  3         9         7          5              7
  4         7         9          5              7
  5         5         9          7              7
  6         9         5          7              7

Решение

Проверить работу кода можно в облаке по ссылке — Ideone.

Пояснения

В первом условии  if((a > b && b > c)||(c > b && b > a)) , мы проверяем оба условия при которых при выполнении любого из них средним числом будет второе число. В следующем условии  else if ((b > a && a > c)||(c > a && a > b )) , проделываем точно такую же операцию, только уже с первым числом. Если же два предыдущих условных оператора не выполняются, то результат будет таков, что средним числом будет являться третье число.

3 thoughts on “e-olymp 108. Среднее число

  1. Нужно попытаться провести рефакторинг. Из трёх различных чисел средним может оказаться только одно. Значит у нас три варианта развития событий. Это означает, что в коде должно быть два условных оператора. Вы использовали 5. Т.е. каждый участок кода, ответственный за обработку варианта повторяется дважды. Если обработку потребуется в дальнейшем как-то менять, то нужно не забыть в трёх парах мест написать строго одно и тоже. Программисты такие штучки не любят.
    Правильно было бы при помощи if - else if - else разобраться с тремя вариантами и записать результат в некоторую результирующую переменную. Потом один раз выполнить обработку найденного значения.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *