所以我是一个初学者,正在尝试解决一个关于制作斐波那契数的小项目。 该代码本质上是关于输入n(序列),它将显示该n序列中斐波那契数的值。 但当然代码出错了,代码只是停止,直到我输入 n 序列,之后就没有打印任何内容。有人可以检查我的代码吗?
#include <stdio.h>
int main(){
int n;
int seq[n];
int i;
printf("number of sequence for the fibonacci number that you want to find out (from 0)= ");
scanf("%d", &n);
for(i = 0; i <= n; i++){
if(i == 0){
seq[i] = 0;
}
else if(i == 1){
seq[i] = 1;
}
else if(i > 1){
seq[i] = seq[i-1] + seq[i-2];
}
}
if(i == n){
printf("the value in sequence %d is %d", n, seq[n]);
}
return 0;
}
最佳答案
输入大小后需要声明变长数组 seq
例如
int n;
int i;
printf("number of sequence for the fibonacci number that you want to find out (from 0)= ");
scanf("%d", &n);
int seq[n + 1];
数组的大小指定为 n + 1,因为要求用户输入从 0 开始的斐波那契数。
如果数组有 n + 1 个元素,这个 for 循环也是正确的。
for(i = 0; i <= n; i++){
这样写比较好
for(i = 0; i < n + 1; i++){
还有这个 if 语句
if(i == n){
没有意义。只需输出数组元素seq[n]
的值即可。
关于c - 带有for循环和if语句错误的斐波那契数代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69287803/