Liczenie ciągu w C

0

Muszę zaprogramować w C program, który liczy n-ty wyraz Fibonacciego, lecz maksymalne n to 35. Napisałam program, ale cały czas liczy on wartość dla n powyżej 35. Czy mógłby ktoś to sprawdzić i poprawić? Wiem na pewno, że coś muszę dopisać chyba w drugiej części, ale co? :)

  
#include <stdio.h>

int f(int n)
{
    if(n < 2){ return n; }
    if( n < 35){ return f(n-1)+f(n-2); }
	else { printf("Maksymalny wyraz to 34");}
}

int main(void)
{
   
    int n, l;
   printf("Który wyraz ciągu Fibonacciego chciałbyś obliczyć?\n");
    scanf("%d", &n);
    l = f(n);
    printf("Wynik to %d\n", l);    
    return 0;
}   
0

Jeżeli n jest >=35, to funkcja f wypisuje komunikat błędu, tak? I nic nie zwraca. A chwilę potem masz
printf("Wynik to %d\n", l);

Bądź konsekwenty i jeśli wypisujesz błąd, to nie wypisuj wyniku nieistniejących obliczeń :)

BTW Twój program nie liczy f(n) dla n>=35. Dla takich n funkcja f nic nie zwraca, więc Twój program wypisując jej wynik, wypisuje tylko jakieś śmieci od czapy.

BTW2: Maksymalny wyraz to 34, czy 35? W swoim poście twierdzisz, że 35, a z zaprezentowanego kodu wynika, że 34.

1 użytkowników online, w tym zalogowanych: 0, gości: 1