Matematické Fórum

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

#1 16. 11. 2008 13:58

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Rekurzivní funkce v jazyce c

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.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#2 16. 11. 2008 14:13

Lishaak
Veterán
Místo: Praha
Příspěvky: 763
Reputace:   
Web
 

Re: Rekurzivní funkce v jazyce c

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


Nothing in the world that's worth having comes easy.
Always do what you are most afraid of.

Offline

 

#3 16. 11. 2008 14:23 — Editoval gladiator01 (16. 11. 2008 14:27)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Rekurzivní funkce v jazyce c

↑ Lishaak:

díky, funguje a nemohl by jsi mi to ještě vysvětlit.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#4 16. 11. 2008 15:53

Lukee
Administrátor
Místo: Opava
Příspěvky: 1850
Škola: UPOL, Informatika
Pozice: Roznašeč reklamních bannerů
Web
 

Re: Rekurzivní funkce v jazyce c

↑ 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.


2+2=4

Offline

 

#5 16. 11. 2008 15:53

Lishaak
Veterán
Místo: Praha
Příspěvky: 763
Reputace:   
Web
 

Re: Rekurzivní funkce v jazyce c

Mozna lepsi nez sahodlouhe vysvetlovani bude, kdyz si pustis debugger, a projdes si, jak ten program bezi krok po kroku.


Nothing in the world that's worth having comes easy.
Always do what you are most afraid of.

Offline

 

#6 16. 11. 2008 15:57

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Rekurzivní funkce v jazyce c

díky oběma


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson