我必须编写一个程序,显示从1到n的Fibonacci序列。 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);
}
}
答案 0 :(得分:1)
有些问题是:
fib[0]
应该是1
,而不是0
fib
数组的大小错误。fib
定义错误。for
填充随机成员,而不是fib
数组元素。答案 1 :(得分:0)
这段代码看起来不太好。您尚未发布包含和for循环不完整。它甚至不包含实际计算序列值的代码。
下一个问题是在这里分叉的目的。您要做的是执行简单的顺序计算。根本不需要叉子。
我建议您在提交此等级之前再做一些相关的工作。