c - C 中的斐波那契数对于 1 - 18 非常有效,但 19 根本不起作用

标签 c fibonacci

我必须编写一个小程序来显示从 1 到 n 的斐波那契数列。 1 到 18 效果很好。但从 19 开始,程序什么也不做,只是完成后退出。 我找不到错误...所以请给我提示。

#include<sys/types.h>
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main(int argc, char **argv)
{
  pid_t pid;
  int fib[argc];
  int i, size;
  size = strtol(argv[1], NULL, 0L);
  fib[0] = 0;
  fib[1] = 1;
  pid = fork();
  printf("size = %d \n", size);
  if(pid == 0){
    for(i = 2; i < size; i++){
      fib[i] = fib[i-1] + fib[i-2];
    }
    for(i = 0; i < size; i++){
      printf("\n\t %d ", fib[i]);
    }
  }
  else if(pid > 0){ // Parent, because pid > 0
    wait(NULL);
    printf("\n");
    exit(1);
  }
}

最佳答案

一些问题是:

  1. fib[0] 应为 1,而不是 0
  2. fib 数组的大小错误。
  3. 数组 fib 也定义错误。
  4. 似乎 for 填充随机成员,而不是 fib 数组元素。

关于c - C 中的斐波那契数对于 1 - 18 非常有效,但 19 根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2880306/

相关文章:

c - 有符号整数和无符号整数是一一对应的吗?

计算 C 中静态数组初始化的元素数量

c - 使用宏作为参数

java - java 的斐波那契范围

algorithm - 如果 n > 3,求关系 T (n) =T (n-1)+T(n-2)+T(n-3) 的时间复杂度

clojure - 如何使用 Clojure 生成斐波那契数列?

c++ - 斐波那契模数 C++

c - SIGABRT 为指针数组中的元素分配空间时

c - c中的无符号整数比较

python : Fibonacci sequence using range(x, y,n)