Сформировать массив из первых 20 чисел Фибоначчи - C (СИ)
Формулировка задачи:
Количество элементов массива ввести с клавиатуры, после чего выделить необходимый объем
динамической памяти для размещения массива.
Перед выходом из программы освободить занятую динамическую память.
Сформировать массив из первых 20 чисел Фибоначчи. Учесть, что первые два числа Фибоначчи
равны 1, а каждое следующее является суммой двух предыдущих. Сформированный массив вывести на экран.
Решение задачи: «Сформировать массив из первых 20 чисел Фибоначчи»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d", &n);
int *fib = (int *)malloc(sizeof(int)*n);
int i;
for(i = 0; i < n;i++) {
fib[i] = (i > 1) ? fib[i-1] + fib[i-2] : 1;
printf("%d\n", fib[i]);
}
free(fib);
}
Объяснение кода листинга программы
В этом коде:
- Объявлена переменная
nтипаint, которая инициализируется вводом с клавиатуры с помощью функцииscanf(). - Выделен динамический массив
fibтипаintс помощью функцииmalloc(). Размер массиваnпередается в качестве аргумента в `sizeof(int)*. - В цикле
forзаполняется массивfibзначениями чисел Фибоначчи. Если индексiбольше 1, то значениеfib[i]равно сумме значенийfib[i-1]иfib[i-2]. В противном случае, еслиiравен 1, тоfib[i]равно 1. - С помощью функции
printf()выводятся значения массиваfibна экран. - Выделенный массив
fibосвобождается с помощью функцииfree(). Вот как это выглядит в виде списка: - Объявлена переменная
nтипаint. - Выделен массив
fibтипаint. - В цикле
forзаполняется массивfibзначениями чисел Фибоначчи. - С помощью функции
printf()выводятся значения массиваfibна экран. - Выделенный массив
fibосвобождается с помощью функцииfree().