Проблема, которую я имею, что, когда говорят, например, пользователь вводит 7, то на дисплее появится сообщение:Печать Фибоначчи с вилкой()
0 11 2 3 5 8 13 21 child ends.
Я не могу показаться, чтобы выяснить, как исправить 11 и почему показывает, что многие числа в последовательности! Может ли кто-нибудь помочь?
Номер последовательности будет предоставлен в командной строке. Например, если 5 предоставлено, первые пять чисел в последовательности Фибоначчи будут выводиться дочерним процессом. Поскольку родительский и дочерний процессы имеют свои собственные копии данных, ребенку необходимо будет вывести последовательность. Попросите родителя вызвать вызов wait(), чтобы дождаться завершения дочернего процесса до выхода из программы. Выполните необходимую проверку ошибок, чтобы гарантировать, что в командной строке будет передан неотрицательный номер.
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
int a=0, b=1, n=a+b,i,ii;
pid_t pid;
printf("Enter the number of a Fibonacci Sequence:\n");
scanf("%d", &ii);
if (ii < 0)
printf("Please enter a non-negative integer!\n");
else
{
pid = fork();
if (pid == 0)
{
printf("Child is producing the Fibonacci Sequence...\n");
printf("%d %d",a,b);
for (i=0;i<ii;i++)
{
n=a+b;
printf("%d ", n);
a=b;
b=n;
}
printf("Child ends\n");
}
else
{
printf("Parent is waiting for child to complete...\n");
wait(NULL);
printf("Parent ends\n");
}
}
return 0;
}
Nope. У Элен действительно отсутствует пробел между ними. Посмотрите внимательно на первый printf ... – dmckee
Да, это то, что я понял, но все остальные элементы последовательности разделены пробелами, а затем у меня все еще есть проблема с слишком большим количеством элементов, 9 элементов отображаются, когда отображается только 7 если 7 был введен пользователем – Ellen