Výběr proměnné podle hodnoty – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výběr proměnné podle hodnoty – C / C++ – Fórum – Programujte.comVýběr proměnné podle hodnoty – C / C++ – Fórum – Programujte.com

 

Frenzy0
Duch
3. 11. 2008   #1
-
0
-

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 :)

Nahlásit jako SPAM
IP: 90.176.24.–
crAzY^
~ Moderátor
+10
Grafoman
3. 11. 2008   #2
-
0
-

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

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Jura
~ Anonymní uživatel
637 příspěvků
3. 11. 2008   #3
-
0
-

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;
}

Nahlásit jako SPAM
IP: 85.207.192.–
crAzY^
~ Moderátor
+10
Grafoman
3. 11. 2008   #4
-
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:

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Frenzy0
Duch
3. 11. 2008   #5
-
0
-

ježiš omlouvám se :D zapoměl jsem dostat že to je do Cčka ne do C++ ale nevadi s C++ sem už dobře seznamen tak si to předělám jen sem potřeboval ten nápad protože mě opravdu nic nenapadalo :D

A díky :P

Nahlásit jako SPAM
IP: 90.176.24.–
Frenzy0
Duch
3. 11. 2008   #6
-
0
-

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

Nahlásit jako SPAM
IP: 90.176.24.–
crAzY^
~ Moderátor
+10
Grafoman
3. 11. 2008   #7
-
0
-

To Frenzy : velmi pěkně jsou logické výrazy popsané v "Mistrovství v C++ (3. vydání)", tam je to fakt vyčerpávající :)

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Frenzy0
Duch
3. 11. 2008   #8
-
0
-

To crAzY^ : Dobře :) Díky za tip určo nato kouknu .. teda až se dostanu k tomu C++ nejdřiv mam v planu zvladnout nejak to Cčko :P

Nahlásit jako SPAM
IP: 90.176.24.–
László
~ Anonymní uživatel
6 příspěvků
3. 11. 2008   #9
-
0
-

ja si to robím takto:
f-ce a1(...podmienky...){...kód...}
Je to lepšie pre mňa =)...aspoň viem,že nik nevie načo slúži...proste napíšem vám:
function a1abb2( a != b){"Text - error"}...

Nahlásit jako SPAM
IP: 85.135.234.–
Frenzy0
Duch
3. 11. 2008   #10
-
0
-

To László : Ehm smysl tohohle sem nějak nepochopil ale nevadí :) jinak problém je už vyřešen .. zůčastněným moc děkuju :)

Nahlásit jako SPAM
IP: 90.176.24.–
Romi
~ Anonymní uživatel
9 příspěvků
3. 11. 2008   #11
-
0
-

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í
}
}

Nahlásit jako SPAM
IP: 147.229.197.–
MaS0
Návštěvník
4. 11. 2008   #12
-
0
-

šlo by použít i operátor ?:

 int vysledek = a>b ? (c>a ? a : (c>b ? c : b)) : (c>b ? b : (c>a ? c : a));

je to sice trochu nepřehledný, ale je to na jeden řádek....

Nahlásit jako SPAM
IP: 195.146.114.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 96 hostů

Podobná vlákna

Výběr hodnoty — založil Hranicarrr

Výběr podle atributu — založil Pooler

Výběr hodnoty zTextArea — založil Nicolas

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý