Зарплата
(Время: 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;
|