用指针实现:产生斐波那契数列的前20项 C语言
时间: 2024-12-27 11:32:29 浏览: 82
在C语言中,我们可以使用指针来动态地生成并存储斐波那契数列的前20项。斐波那契数列是一个每个数字都是前两个数字之和的序列,通常从0和1开始。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个结构体存储斐波那契数值及其索引
typedef struct {
long long fib;
int index;
} Fibonacci;
// 动态分配数组用于存放斐波那契数列
Fibonacci* create_fibonacci(int n) {
Fibonacci* fib_array = (Fibonacci*)malloc(sizeof(Fibonacci) * n);
fib_array[0].fib = 0;
fib_array[0].index = 0;
if (n > 1) {
fib_array[1].fib = 1;
fib_array[1].index = 1;
for (int i = 2; i < n; i++) {
fib_array[i].fib = fib_array[i - 1].fib + fib_array[i - 2].fib;
fib_array[i].index = i;
}
}
return fib_array;
}
// 打印斐波那契数列
void print_fibonacci(Fibonacci* fibs, int n) {
printf("Fibonacci sequence of the first %d terms:\n", n);
for (int i = 0; i < n; i++) {
printf("%lld at index %d\n", fibs[i].fib, fibs[i].index);
}
}
int main() {
int num_terms = 20;
Fibonacci* fibonacci_sequence = create_fibonacci(num_terms);
print_fibonacci(fibonacci_sequence, num_terms);
// 释放内存
free(fibonacci_sequence);
return 0;
}
```
这个程序首先创建了一个`Fibonacci`结构体数组来存储斐波那契值和它们的索引。然后通过循环计算出每一项,并将其添加到数组中。最后打印出整个序列并释放动态分配的内存。
阅读全文
相关推荐


















