Zdravím, mám takový problém. Mám za úkol vytvořit program který načte ze vstupu postupně 3 čísla a vypíše to prostřední z ních (podle hodnoty ne podle pořadí!!) .. No a mě nějak neleze do hlavy jak asi by ta podmínka měla vypadat .. prostě to neumím pochopit .. Prosím o radu :)
Fórum › C / C++
Výběr proměnné podle hodnoty
To Frenzy :
int cislo1, cislo2, cislo3;
cin >> cislo1 >> cislo2 >> cislo3;
cout << "Prostredni cislo je: ";
if(cislo1 < cislo2 && cislo1 > cislo3 || cislo1 > cislo2 && cislo1 < cislo3)
cout << cislo1;
else if(cislo2 < cislo3 && cislo2 > cislo1 || cislo2 > cislo3 && cislo2 < cislo1)
cout << cislo2;
else
cout << cislo3;
tohle mi funguje, ale nevím jestli je to nejlepší způsob
Já jsem celkem líný člověk, takže bych šel na to třeba takto(pravda neni to příliš efektivni, nicméně méně pracné):-):
#include <iostream>
#include <algorithm>
int main()
{
int a[3];
std::cin >> a[0] >> a[1] >> a[2];
std::sort(a, a + 3);
std::cout << a[1];
return 0;
}
To Jura : ano, to je dobré řešení, ale řekl bych, že algoritmus sort nebude moci použít, protože píše že to dostal za úkol. A řekl bych,že tento algoritmus ještě neměli. Ale jinak je to dobré řešení :smile2:
crAzY^ napsal:
To Frenzy :
tohle mi funguje, ale nevím jestli je to nejlepší způsob
Díky uspěšně sem to převedl a funguje :)
A když nato tak koukám... tak je to uplně jednoduché :D
BTW: takhle sem to už zkoušel ale bohužel se mi to nepovedlo :D .. nesnašim takovehle podminky :D obzvlaště když mam KOPR a nechce se mi přemýšlet :D
Jen pro zajímavost a když už sem se do toho pustil.. Tohle mi přijde lepší v tom smyslu, že se provede jen nezbytně nutnej počet porovnání, min 2 a max 3. V kódu od Frenzyho je to min 2 a max 8. Třeba při výpisu čísla 3 se provede spousta stejnejch, takže zbytečnejch porovnání.. Ale zase pro někoho to může bejt názornější :)
if (a < b)
{ // pořadí podle velikosti a-b, no a co c?
if (c > b) printf("%d", b); // b prostřední
else
{ // b je určitě největší, jak malé/velké je a vůči c?
if (a < c) printf("%d", c); // c prostřední
else printf("%d", a); // a prostřední
}
}
else
{ // pořadí podle velikosti b-a, no a co c?
if (c > a) printf("%d", a); // a prostřední
else
{ // a je určitě největší, jak malé/velké je b vůči c?
if (b < c) printf("%d", c); // c prostřední
else printf("%d", b); // b prostřední
}
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
WPF - změna typu ovládacího prvku podle hodnoty proměnné — založil Sharpermax
Výběr hodnoty — založil Hranicarrr
Výběr podle atributu — založil Pooler
Výběr hodnoty zTextArea — založil Nicolas
[DB] mysql_data_seek podle hodnoty sloupce — založil w3m
Moderátoři diskuze