Cześć, mam mały problem z jednym zadankiem, mianowicie chodzi mi jedynie o printf'a w funkcji main, gdzie program wypisuje wartość 21, natomiast mi wychodzi 23. Gdzie popełniam błąd? Liczę to w taki sposób, że: przy wywołaniu funkcji f dla n=0 zwraca 1, następnie dla argumentu 4 funkcja zwraca 1+10 czyli 11 i dla argumentu 7 również 1+10 czyli 11. Łącznie wychodzi mi 23, co jest niepoprawne. Proszę o pomoc :)
#include <stdio.h>
int x = 3;
int f(int n) {
static int y = 1;
++y; x-=y;
printf("n=%d x=%d y=%d\n", n, x, y);
if(n<5) return f(n+3)+10;
return 1;
}
int main() {
printf("%d", f(1));
return 0;
}