Od 15. do 21.4. slevy 20 až 80% v sekci C/C++. Když ne teď, tak kdy?
Vyšlehej si extra vědomosti! Až 100% bodů na prémiový obsah zdarma! Více zde

Diskuze: Jednoduchý algoritmus

Aktivity (4)
Avatar
Tomáš Hanzelka:4.10.2018 21:29

Program nejde zkompilovat. Hází mi chyby a tváří se, že operátor && je pro něj nezřetelný.

Zkusil jsem: Přidat středníky a složené závorky tam kam mi program hlásí (i když mi nepřijde logické, že bych měl dávat středník za podmínku if)

Chci docílit: Začínám s C# a učím se podmínky. Ve škole jsme měli udělat nějaké jednoduché programy. Já se snažím udělat už trochu "složitější" a to konkrétně program, který mi z tří čísel řekne, které je největší.
Děkuji za pomoc.

 
Odpovědět 4.10.2018 21:29
Avatar
Odpovídá na Tomáš Hanzelka
Ondřej Štorc:4.10.2018 21:34

Správně musíš zapsat ten if takhle:

if((a < b) && (a < c))
{
...
}
else
{
...
}

kdy a < b je jeden výraz, a < c je druhý a && to propojují pomocí logické spojky AND. V C# samotné & má význam jako bitová operace (pracuje s jednotlivýma bitama v proměné), ne jako logická spojka (která pracuje s datovým typem bool).
Ty závorky okolo jednotlivých výrazů jsou v mé ukázce zbytečný, protože operátor < má přednost před logickýma spojkama.

Editováno 4.10.2018 21:36
Nahoru Odpovědět  +1 4.10.2018 21:34
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Tomáš Hanzelka
Andy Scheuchzer:4.10.2018 21:35

V dotazu píšeš, že &&… co třeba to tam napsat? A závorky nemusí být jenom složené:

if (a < b && a < c) {

A máš tam chybu – v tomto případě je a nejmenší.

Edit: Ondřej Štorc byl rychlejší :-)

Editováno 4.10.2018 21:36
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 4.10.2018 21:35
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Tomáš Hanzelka:4.10.2018 21:36

joo, ty dvě & jsem měl, jenom jsem zkoušel jestli to nebude záhadně fungovat, každopádně chyba bude v závorkách.
zkusím děkuji :)

 
Nahoru Odpovědět 4.10.2018 21:36
Avatar
Tomáš Hanzelka:4.10.2018 21:41

Jinak zobáčky jsem nechtěně prohodil, ještě jednou děkuji :)

 
Nahoru Odpovědět 4.10.2018 21:41
Avatar
Jiří Hlaváček:4.10.2018 23:39

Jinak je dobře, že se snažíš něco ladit "dál".
Ještě kdybys nechtěl použít větvení, tak můžeš použít matematické funkce

max = Math.Max(Math.Max(a, b), c);

V proměnné max pak budeš mít největší hodnotu.
To jen pro inspiraci k experimentování.

 
Nahoru Odpovědět 4.10.2018 23:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.