Rekurze běží pořád dokola při zadání symbolu (-*/+.,?§¨apod) míso čísla – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Rekurze běží pořád dokola při zadání symbolu (-*/+.,?§¨apod) míso čísla – C / C++ – Fórum – Programujte.comRekurze běží pořád dokola při zadání symbolu (-*/+.,?§¨apod) míso čísla – C / C++ – Fórum – Programujte.com

 

BTjacker
~ Anonymní uživatel
3 příspěvky
26. 2. 2008   #1
-
0
-

Zdravím, mám tento problém a nevím jak jej vyřešit, v C++ jsem začátečník.
když použiji např.
funkce()
cin >> cislo;
if (cislo <5)
prikazy;
else
funkce();

proste chci aby prikazy probehly pouze kdyz bude cislo mensi nez 5, jinak chci zadat cislo znova. Kdyz ale napisu treba +, tak se rekurze uz nezastavi a jede porad sama. pls poradte jak se to da osetrit. dekuji za pomoc

Nahlásit jako SPAM
IP: 82.117.139.–
Bald3rr0
Super člen
26. 2. 2008   #2
-
0
-

To BTjacker :

cin >> cislo

if (isdigit(cislo)) { //isdigit() je fce z knihovny cctype a je pravdive, jestlize je cislo cislice 0 - 9
cout << "Nezadali jste ciselnou honotu, program se ukonci!";
return 0;
}
else if (cislo < 5) {
prikazy;
}
else {
funkce();
}


aby jsi mohl vyuzit isdigit(), nezapomen #include <cctype>

Nahlásit jako SPAM
IP: 82.100.0.–
BTjacker
~ Anonymní uživatel
3 příspěvky
27. 2. 2008   #3
-
0
-

Nejspíš chápu jak jsi to myslel (i když je to trochu přehozené) ale nepomáhá to ani když to napíšu dobře, tohle můj problém neřeší.
ještě poddotaz: jak se jmenuje funkce z knihovny cctype která vrací true pokud je to číslo? Nemyslím jen 0-9, myslím "double"

Problém je v tom že pokud podmínka nesouhlasí,tak se funkce zopakuje(to samozřejmě má udělat), ale pokud jsem neznámé přiřadil jako hodnotu "+" spustí se funkce znova(to také má) ale už se neptá na další hodnotu, nýbrž vypisuje stále "špatná hodnota zadejte znovu" (vypisuje stále zn. že mám popsané celé okno a valí to samo:) přitom by se měla zeptat na novou hodnotu)

Děkuji za odpověď, snad jste pochopili z mého šíleného popisu co mě trápí :)

Nahlásit jako SPAM
IP: 82.117.139.–
BTjacker
~ Anonymní uživatel
3 příspěvky
27. 2. 2008   #4
-
0
-

Spatne sem pochopil vyznam isdigit, ale už tomurozumím :) takže ta podotázka už je vyřešená :)

Nahlásit jako SPAM
IP: 82.117.139.–
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, 39 hostů

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ý