If13. Даны три числа. Найти среднее из них (то есть число, расположенное между наименьшим и наибольшим).
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
program if13; var A, B, C: Real; begin Write('Введите первое число: '); Readln (A); Write('Введите второе число: '); Readln (B); Write('Введите третье число: '); Readln (C); if A<B then // A<B if B<C then Writeln('второе число среднее.') // A<B B<C A<B<C else if (A<C) then Writeln('третье число среднее.') // A<B B>C A<C B>C>A else Writeln('первое число среднее.') // A<B B>C A>C B>A>C else // A>B if B>C then Writeln('второе число среднее.') // A>B B>C A>B>C else if A<C then Writeln('первое число среднее.') // A>B B<C A<C B<A<C else Writeln('третье число среднее.'); // A>B B<C A>C B<C<A end. |
Решение от Евгения:
1 2 3 4 5 6 7 8 9 |
program zif13; var a,b,c:real; begin Write('Введите числа A B C: '); Readln(a,b,c); if ((a<c)and(c<b)) or ((b<c)and(c<a)) then writeln(c); if ((b<a)and(a<c)) or ((c<a)and(a<b)) then writeln(a); if ((c<b)and(b<a)) or ((a<b)and(b<c)) then writeln(b); end. |
Другие задачи из раздела If можно посмотреть здесь.
В защиту своего решения я над ним долго думал и оно должно быстрее работать. Но с наглядностью да намного хуже.