Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Rekurzivní funkce v jazyce C.
Já vím, že je to určitě jednoduché, ale já to nějak to nemůžu vymyslet.
Napište rekurzivní proceduru, která pro zadané kladné celé číslo n vypíše:
n n-1 n-2 ... 2 1 1 3 ... n-2 n-1 n
Například pro n=4 vypíše
4 3 2 1 1 2 3 4.
Dík za případnou pomoc.
Offline
Takhle nejak by to melo byt. Vysledek vypise po zavolani output(n). Zkompilovat jsem to nezkousel, ale semanticky by to melo byt spravne.
void output(int k) {
if(k <= 0)
return;
printf("%d ", k);
output(k - 1);
printf("%d ", k);
}
Offline
↑ Lishaak:
díky, funguje a nemohl by jsi mi to ještě vysvětlit.
Offline
↑ gladiator01:
Předpokládejme, že vstup bude k=4. V prvním kroku se vypíše 4, pak se zavolá tatáž funkce s 3 a poté se ještě vypíše další 4. Takže současný výstup je 4, output(3), 4. Výsledek output(3) je opět 3, output(2), 3. Současný celkový výsledek je 4, 3, output(2), 3, 4. Atd. Když bude k=0, funkci ukončíme.
Offline
Mozna lepsi nez sahodlouhe vysvetlovani bude, kdyz si pustis debugger, a projdes si, jak ten program bezi krok po kroku.
Offline
díky oběma
Offline
Stránky: 1