Вывод заданного количества чисел Фибоначчи - C (СИ)

Узнай цену своей работы

Формулировка задачи:

помогите, только начал изучать язык Си! как сделать так, что бы количество чисел нужно было бы вводить самому вот код
#include <stdio.h>
#include <stdlib.h>
 
int fib(int a, int b, int n)
{
scanf("%d", n);
      if (n == 0) return a;
      if (n == 1) return b;
      return fib(b, a+b, n-1);
}
int main(void)
{
      int i;
      for (i = 0; i < n; ++i)
         printf("Fibonacci(%d) = %d\n", i, fib(0, 1, i);
     return 0;
}
Где ошибки? Помогите, пожалуйста!

Решение задачи: «Вывод заданного количества чисел Фибоначчи»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
void fib(int c, int p, int n)
{
   printf("%d\n",p);    
   if (n==1) return;
   fib(c+p,c,n-1);
}    
 
int main(int argc, char *argv[])
{
  int a,b,n;
  a=1;
  b=0;
  printf("n=");
  scanf("%d",&n);
  fib(a,b,n);
  system("PAUSE");  
  return 0;
}

Объяснение кода листинга программы

Вывод заданного количества чисел Фибоначчи

  1. Объявлены три функции:
  2. В функции main объявлены три переменные типа int: a, b, n. Изначально a и b равны 1 и 0 соответственно. Переменная n инициализируется значением, которое вводит пользователь с клавиатуры.
  3. С помощью функции scanf вводится значение переменной n.
  4. Вызывается функция fib с аргументами a, b, n.
  5. Внутри функции fib выводится значение переменной p с помощью функции printf.
  6. Если n равно 1, то происходит выход из рекурсии.
  7. Если n больше 1, то вызывается функция fib с аргументами c+p, c, n-1, где c это результат вызова функции fib с аргументами a, b, n-1.
  8. В конце программы вызывается функция system, которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу.
  9. Функция main возвращает 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы