qq_51455387
qq_51455387
2021-05-23 15:12
采纳率: 100%
浏览 31

使用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()放在头文件的下面这个程序该怎么改

谢谢您

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • software7503
    已采纳
    #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);
    }
     
    
    点赞 1 评论
  • technologist_15
    CSDN专家-三岁丫 2021-05-23 15:20

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

    点赞 1 评论
  • QA_Assistant
    有问必答小助手 2021-05-27 15:12

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

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

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

    点赞 评论

相关推荐