• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego takie wyniki w wywołaniach rekurencyjnych?

Object Storage Arubacloud
+1 głos
160 wizyt
pytanie zadane 11 czerwca 2015 w C i C++ przez demo094 Użytkownik (630 p.)
Wie ktoś dlaczego wydruk z tego kodu jest następujący? "6 3 7 4 1" http://pastebin.com/EftZfCU7

2 odpowiedzi

+2 głosów
odpowiedź 11 czerwca 2015 przez Radfler VIP (101,030 p.)
edycja 11 czerwca 2015 przez Radfler
 
Najlepsza

A co jest z nim nie tak? Wszystko się wykonało prawidłowo :)

Dokładniej mówiąc:

-> Wykonał się pierwszy if(n<3) i została wywołana funkcja f(n+2), czyli f(3)

    -> Pierwszy if nie został spełniony, funkcja nie została wywołana

    -> Drugi if(n<5) został spełniony i została wywołna funkcja f(n+3), czyl f(6)

        -> Żaden if nie został spełniony, wydrukowało 6

    -> Powrót do poprzedniej funkcji, wydrukowało 3

-> Wykonał się drugi if(n<5) i została wywołana funkcja f(n+3), czyli f(4)

    -> Pierwszy if(n<3) nie został spełniony

    -> Drugi if(n<5) został spełniony i została wywołana funkcja f(n+3), czyli f(7)

        -> Żaden if się nie spełnił, wydrukowało 7

    -> Wydrukowało 4

-> Wydrukowało 1

PS. Zagnieżdżenie strzałki mówi które to wywołanie funkcji ;)

komentarz 11 czerwca 2015 przez demo094 Użytkownik (630 p.)
Ale dlaczego tak jest? Nie potrafię zrozumieć jak tu się to wykonuje
komentarz 11 czerwca 2015 przez Radfler VIP (101,030 p.)
Masz wyjaśnienie, trochę mi to zajęło :)
komentarz 11 czerwca 2015 przez Dorion300 Szeryf (90,250 p.)
Ponieważ na końcu jest print nie na początku.
komentarz 11 czerwca 2015 przez demo094 Użytkownik (630 p.)
Dziękuje bardzo
0 głosów
odpowiedź 11 czerwca 2015 przez Dorion300 Szeryf (90,250 p.)
Jeśli nie tego się spodziewałeś może chodziło ci o tylko jeden możliwy if do wykonania, a nie dwie na raz.

 

Jeśli tak, to ustaw w drugim if'e "else if"

dzięki temu wykona się tylko jeden if.

 

O i jeszcze jedno - Musi najpierw skończyć pozostałe funkcje aby print się wykonał.

Podobne pytania

0 głosów
1 odpowiedź 518 wizyt
0 głosów
1 odpowiedź 2,417 wizyt
pytanie zadane 7 października 2016 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 233 wizyt
pytanie zadane 7 kwietnia 2023 w C i C++ przez początek Nowicjusz (190 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...