C语言编写求出Fibonacci数列的前20项并存储在数组中,然后再按每行5个数据输出。其中,Fibonacci数列,按如下递归定义:F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2),n>2.
时间: 2024-12-02 21:15:08 浏览: 8
C语言求Fibonacci斐波那契数列通项问题的解法总结
5星 · 资源好评率100%
在C语言中,你可以使用动态内存分配和循环结构来计算Fibonacci数列的前20项,并将它们存储在一个数组中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_FIB 20
// 动态内存分配用于存储Fibonacci序列
int* fibonacci(int n) {
int* fib = (int*)malloc((n + 1) * sizeof(int));
fib[0] = fib[1] = 1;
for (int i = 2; i <= n; ++i) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib;
}
void print_fibonacci(int* fib, int size) {
for (int i = 0; i < size; i += 5) {
for (int j = i; j < i + 5 && j < size; ++j) {
printf("%d ", fib[j]);
}
printf("\n");
}
free(fib);
}
int main() {
int fib_array[MAX_FIB] = {0}; // 初始化数组
int* fib指针 = fibonacci(MAX_FIB); // 计算并存储Fibonacci序列
print_fibonacci(fib指针, MAX_FIB); // 输出结果
free(fib指针); // 释放内存
return 0;
}
```
这个程序首先定义了一个函数`fibonacci`,它会生成Fibonacci数列并将结果存储在动态分配的数组中。然后`print_fibonacci`函数会按照每行5个数的方式打印这些数值。最后,在`main`函数中调用这两个函数。
阅读全文