c - 带有for循环和if语句错误的斐波那契数代码

标签 c for-loop fibonacci variable-length-array

所以我是一个初学者,正在尝试解决一个关于制作斐波那契数的小项目。 该代码本质上是关于输入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/

相关文章:

c - C 中的泛型函数指针

c - 指针上多个增量运算符的求值顺序

c - 递增嵌套数组 - 带有日期信息

javascript - 斐波那契数列 - 仅添加奇数 - Javascript

java - 使用递归根据用户输入确定斐波那契数

c - 简单单位转换程序 - scanf 与 do-while 循环的问题(C 编程)

c - 从以太网 header 打印 MAC 地址

bash for 循环在命令行中工作,但在脚本中失败

arrays - 在 plpgsql 中循环遍历数组维度

java - Java 中的欧拉项目 #2