免檒 2023-10-24 18:16 采纳率: 87.5%
浏览 5
已结题

关于斐波那契数列的编程

为什么我的下面的else里的那个printf在输入n=3之后的数字后只输出0,把printf放在else里后,把第n个以及之前的数字都打出来了,我只想输出第n个数字,该怎么改代码?

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-24 21:14
    关注

    【以下回答由 GPT 生成】

    问题的解决方案是将printf语句放在for循环之前,然后在循环的每一次迭代中,都更新并打印斐波那契数列的当前值。以下是修改后的代码示例:

    #include <stdio.h>
    
    int fibonacci(int n)
    {
        if (n == 0 || n == 1)
            return n;
        else
        {
            int a = 0, b = 1, c;
            printf("计算斐波那契数列的过程:\n");
            for (int i = 2; i <= n; i++)
            {
                c = a + b;
                a = b;
                b = c;
                printf("%d\n", b); // 打印斐波那契数列的当前值
            }
            return b;
        }
    }
    
    int main()
    {
        int n = 6; // 假设要计算的斐波那契数列的位置为6
        int result = fibonacci(n);
        printf("斐波那契数列的第%d个数字为: %d\n", n, result);
        return 0;
    }
    

    这样修改后,程序会打印出斐波那契数列的当前值,并且最终只打印出第n个斐波那契数。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 10月24日