Interpretacja kodu

Interpretacja kodu
P0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Witam, mógłby ktoś wyjaśnić jak otrzymany został wynik w tym programie
WYNIK 10,8,6,4,3,5,3,27

Kopiuj
#include <stdio.h>
int F(int x)
{
 int w = x;
 printf("%d ",x+1);
 if (x>3)
 {
 w+=F(x-2);
 x--;
 }
 if (x>4)
 w+=F(x-4);
 else
 w-=1;
 return w;
}
int main()
{
 printf("%d ", F(9));
 return 0;
}
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Otrzymany został niechybnie w wyniku wykonania podanych instrukcji.

szarotka
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 555
2

Jakbyś napisał czego nie rozumiesz byłoby łatwiej :)

Prawdopodobnie nie spotkałeś się z rekurencją?
Rekurencja to wywoływanie funkcji przez tę samą funkcję.

Innymi słowy, w main wywołujesz funkcję F dla wartości 9.
Spełniony jest warunek if (x>3) stąd wywołujesz jeszcze raz tą funkcję ale dla 9-2 czyli 7, tu znowu spełniony jest warunek if (x>3) więc wywołujesz jeszcze raz tlyko tym razem dla 5-2 czyli 3 itd

rrowniak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 82
0

Debugger powie Ci wszystko. Warto zainwestować trochę czasu i zapoznać się np. z gdb, to podstawa i od tego nie uciekniesz (chyba, że uciekniesz od programowania).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.