使用C语言用递归法求斐波那契数列,(套用函数)

不知道怎么编写函数

#include<stdio.h>
int fun(int n)      //n代表第几项。特别指出:0是第0项,不是第1项。
{
    if (n <= 1)
        return n;
    else
        return fun(n-1) + fun(n-2);
}
 
int main()
{
    int n;
    printf("请输入要输出多少项(自然数)斐波那契数列:");
    scanf("%d",&n);
    //int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储
    int i;
    for (i = 0; i < n+1; i++)         //输出所有项
    {
        printf("%d, ", fun(i));
        if (i != 0 && i%5 == 0)     //每五项进行一次换行(第一行多一个第0项)
            printf("\n");
    }
    printf("第 %d 项是:%d\n", n, fun(n)); //输出要求的项
    return 0;
}
如果把int main()放在头文件的下面这个程序该怎么改

谢谢您

#include<stdio.h>
//先声明函数
int fun(int n);

int main()
{
    int n;
    printf("请输入要输出多少项(自然数)斐波那契数列:");
    scanf("%d",&n);
    //int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储
    int i;
    for (i = 0; i < n+1; i++)         //输出所有项
    {
        printf("%d, ", fun(i));
        if (i != 0 && i%5 == 0)     //每五项进行一次换行(第一行多一个第0项)
            printf("\n");
    }
    printf("第 %d 项是:%d\n", n, fun(n)); //输出要求的项
    return 0;
}

int fun(int n)      //n代表第几项。特别指出:0是第0项,不是第1项。
{
    if (n <= 1)
        return n;
    else
        return fun(n-1) + fun(n-2);
}
 

 

您只需要先定义函数的原型,但是一定要在第一次调用之前先定义好,然后在后面实现它就好了。你可以在 int main() 前面加一行 int fun(int n); 然后就可以把原来的方法放到 main 方法的后面了。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632