Ostatnio z powodu nudy w pewnym miejscu znalazłem na internecie takie zadanie:
Napisz program, który po podaniu trzech liczb wypisze ich wartość środkową np: dla liczb 3,6,10 prawidłowe wyjście to: 6.
Chwilkę nad tym pomyślałem i po 15 minutach miałem gotową implementację:
#include <iostream>
using namespace std;
int main()
{
int A,B,C;
while (true)
{
cout << "Podaj trzy liczby: ";
cin >> A >> B >> C;
if((B > C && B < A) || (B < C && B > A))
cout << B << endl;
// 1 3 2
else if( (C>A && C < B) || (C<A && C > B) )
cout << C << endl;
// 2 3 1
else if ( (A > C && C < B) || (A < C && C > B) )
cout << A << endl;
cout << endl;
}
}
No i zastanawiam się jakie Wy byście proponowali rozwiązanie tego problemu? Może znacie jakiś krótszy albo bardziej optymalny zapis? Podzielcie się swoimi kodami (nie koniecznie w C++ ale haskella/cobola nie mam zamiaru rozszyfrowywać).