Pomoc s cyklem if/else – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s cyklem if/else – C / C++ – Fórum – Programujte.comPomoc s cyklem if/else – C / C++ – Fórum – Programujte.com

 

Tom0
Duch
14. 12. 2006   #1
-
0
-

Zdravim. Mohl by mi nekdo pomoci? Mam program, kde chci, aby uzivatel zadal odpoved - bud "a" nebo "n". at vsak zadam cokoli ve formatu jednoho pismene (char odpoved[2];) vypise mi to prikaz vztahujici se k "a". muze mi nekdo helpnout? tady je zdrojovy kod:

char odpoved[2];
cout << "nnSouhlas" << ii << " V" << aa << "mi zadan" << ee << " " << uuu << "daje? (a/n) ";
cin.getline (odpoved, 2);
if (odpoved != "a")
{
cout << "nnV" << yy << "born" << eee << " m" << uu << zz << "eme tedy pokra" << cc << "ovat";
}
else if (odpoved != "n")
{
cout << "nnStiskn" << eee << "te tedy 2x ENTER a spus" << tt << "te program znovu.";
cin.get();
cin.get();
return 0;
}

cin.get();
cin.get();
return 0;

Nahlásit jako SPAM
IP: ...–
Tomas
sn3d0
Věrný člen
14. 12. 2006   #2
-
0
-

To Thomisso:

char odpoved[2];
cout << "nnSouhlas" << ii << " V" << aa << "mi zadan" << ee << " " << uuu << "daje? (a/n) ";
cin.getline (odpoved, 2);

if (odpoved[0] == 'n') {
cout << "nnStiskn" << eee << "te tedy 2x ENTER a spus" << tt << "te program znovu.";
cin.get();
cin.get();
return 0;
} esle {
cout << "nnV" << yy << "born" << eee << " m" << uu << zz << "eme tedy pokra" << cc << "ovat";
}

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Tom0
Duch
14. 12. 2006   #3
-
0
-

To sn3d:

Díky za radu. To s tim if (odpoved[0]...) chápu. To tam musí být ty jednoduché uvozovky?

Nahlásit jako SPAM
IP: ...–
Tomas
sn3d0
Věrný člen
14. 12. 2006   #4
-
0
-

ano musia byt.. inac ti to neskompiluj (pretoze aj "a" je kvazi-pole kde dalsi znak za a je NULL).. Ked pouzijes jednoduche zatvorky ukoncovaci znak sa nepouzije cize ide o cisty znak cize skutocny char nie char[]

kompilator vlastne chape "a" ako char[2] v ktorom = { 'a', NULL } kdezto 'a' chape ako char v ktorom je len to samotne 'a'.Napriklad kompilator ti nezoberie 'asd' ale "asd" uz ano.. Treba si uvedomit ze v stringoch je stale konci este NULL znak.

No vysvetlit som to dost blbo ale snad vies co som tym myslel?

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Matěj Pácha0
Super člen
15. 12. 2006   #5
-
0
-

Tak mě dostalo tohle:
if (odpoved != "a")
To totiž znamená: pokud se znak neshoduje se znakem "a", udělej....
Takže potom je jasné, že blok se provede vždy, kromě případu zadání "a".
Správně by mělo být:
if (odpoved == "a")
Doporučuju podobné rozhodování dělat pomocí příkazu switch.

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Miroslav Kajan0
Věrný člen
15. 12. 2006   #6
-
0
-

To paashi: Jak už psal sn3d, není správně ani

if (odpoved == "a")
musí být
if (odpoved == 'a')

Nahlásit jako SPAM
IP: ...–
Zápisky z dění na FB (momentálně ve vývoji): http://fbpd.ic.cz/
Matěj Pácha0
Super člen
15. 12. 2006   #7
-
0
-

To midin: Nemusá, ale uznávám, že by to tak nefungovalo. Musel by se porovnávat řetězec. Lepším řešením je porovnávání znaku, ale to by "odpoved" měla být typu char a ne char[]

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Miroslav Kajan0
Věrný člen
15. 12. 2006   #8
-
0
-

To paashi: Zde se porovnává znak a je možno použít char[]. I když to nemá moc smysl :P

Nahlásit jako SPAM
IP: ...–
Zápisky z dění na FB (momentálně ve vývoji): http://fbpd.ic.cz/
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, 83 hostů

Podobná vlákna

Problem s for cyklem — založil zoufalec

Problém s cyklem while — založil Tase

Problem s cyklem while — založil slipka

Procházení cyklem složky — založil Ralis

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ý