为什么需要在函数中使用if语句才能起作用?

问题描述 投票:0回答:1

[当我尝试在C中使用递归来实现fibonacci序列时,我注意到在函数fibo中,如果我不使用某种if语句从函数中返回1,则程序崩溃。为什么这样做发生了吗?

#include<stdio.h>

int fibo(int);
int main(void){
    int n, num;

    scanf("%d", &n);

    num = fibo(n);
    printf("apo: %d", num);
    return 0;
}


int fibo(int n){
    if(n==0)
        return 0;
    else if(n==1)
        return 1;
    else if(n!=0){
        n = fibo(n-1) + fibo(n-2);
    return n;
    }
}


/*FOR EXAMPLE if I leave the fuction like this, it doesn't work*/
int fibo(int n){
        n = fibo(n-1) + fibo(n-2);
    return n;
}

c recursion fibonacci
1个回答
0
投票

让我们采用绝对最简单的递归函数。

© www.soinside.com 2019 - 2024. All rights reserved.