C中的斐波那契在1-18时效果很好,但在19时一点作用都没有
我必须编写一个小程序,显示从1到n的斐波那契序列。 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
#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是因为这是一个赋值;)这段代码为我编译和工作。我知道我不需要在这里分叉。。。但这是一项任务。这不是我的错;)您可以添加“没有命令行参数的验证”。