Вывод заданного количества чисел Фибоначчи - 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; }
Объяснение кода листинга программы
Вывод заданного количества чисел Фибоначчи
- Объявлены три функции:
- В функции
main
объявлены три переменные типаint
:a
,b
,n
. Изначальноa
иb
равны 1 и 0 соответственно. Переменнаяn
инициализируется значением, которое вводит пользователь с клавиатуры. - С помощью функции
scanf
вводится значение переменнойn
. - Вызывается функция
fib
с аргументамиa
,b
,n
. - Внутри функции
fib
выводится значение переменнойp
с помощью функцииprintf
. - Если
n
равно 1, то происходит выход из рекурсии. - Если
n
больше 1, то вызывается функцияfib
с аргументамиc+p
,c
,n-1
, гдеc
это результат вызова функцииfib
с аргументамиa
,b
,n-1
. - В конце программы вызывается функция
system
, которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу. - Функция
main
возвращает 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д