Олимпиады по информатике (ХМАО - Югра)

   
 
Югорский НИИ ИТ, Югорский ФМЛ
Логин:   Пароль:    
 
   
 
Новости
О проекте
Регистрация
Гостевая книга
Форум
Архив задач
Состояние системы
Олимпиады
Работа в системе
Рейтинг
Новичкам
Методическое пособие
Дистанционное обучение
Дистрибутивы
Ссылки

HotLog

Зарплата

(Время: 1 сек. Память: 16 Мб Сложность: 4%)

В данной задаче необходимо найти наибольшее и наименьшее значение и вывести их разность. Для этого проще всего упорядочить заданные числа A, B и C в порядке неубывания (A<=B<=C) и тогда значение C-A будет решением этой задачи. Для этого можно было бы прибегнуть к принципу чайника и отсортировать массив из трех элементов методом "пузырька", например. Но это решение не самое разумное в данном случае.

Здесь мы можем применить тот же метод "пузырька", но без циклов и массивов. Действительно, за 3 сравнения можно достичь желаемого результата. Сначала сравнивая А и B мы можем в A поместить наименьшее из них, поменяв их местами. Далее сравнивая A и C мы поместим в А наименьший из 3х чисел элемент. А после сравнения B и C в C получим наибольший. Описанный выше алгоритм можно представить в виде следующей блок-схемы:

Сортировка трех чисел

На всякий случай напомним, как с помощью третьей переменной можно поменять значения переменных местами:

   x=a; a=b; b=x;

В языке Си для различных целочисленных переменных a и b можно использовать более красивую и короткую запись без использования третьей переменной:

   a^=b^=a^=b;

[Все попытки] [Задача]


 
     
Югорский НИИ ИТ, Югорский ФМЛ


образец свидетельства о смерти   Санэпидемстанция от клопов узнать больше.