C中的斐波那契在1-18时效果很好,但在19时一点作用都没有

C中的斐波那契在1-18时效果很好,但在19时一点作用都没有,c,fibonacci,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

我必须编写一个小程序,显示从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);
  }
}
#包括
#包括
#包括
#包括
int main(int argc,字符**argv)
{
pid_t pid;
int-fib[argc];
int i,大小;
size=strtol(argv[1],NULL,0L);
fib[0]=0;
fib[1]=1;
pid=fork();
printf(“大小=%d\n”,大小);
如果(pid==0){
对于(i=2;i0){//父项,因为pid>0
等待(空);
printf(“\n”);
出口(1);
}
}

但这个代码看起来还是不太好。您尚未发布includes,for循环不完整。它甚至不包含实际计算序列值的代码

下一个问题是在这里分叉的目的。您要做的是执行简单的顺序计算。根本不需要叉子

我建议在提交这个成绩之前多做一些工作

有些问题是:

  • fib[0]
    应该是
    1
    ,而不是
    0
  • fib
    数组的大小错误
  • 数组
    fib
    的定义也是错误的
  • 似乎
    填充随机成员,而不是
    fib
    数组元素

  • 你到底为什么要用
    fork
    来计算斐波那契序列?那代码甚至都不会编译。您能给出您试图输入19的版本的代码吗?我使用fork是因为这是一个赋值;)这段代码为我编译和工作。我知道我不需要在这里分叉。。。但这是一项任务。这不是我的错;)您可以添加“没有命令行参数的验证”。