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

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

关注【以下回答由 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个斐波那契数。
【相关推荐】