问题4:计算并输出斐波那契数列前20项,1.12.3.5.……。要求用指向数组的指针实现,程序中不能出现数组元素的写法。结果保存在 13-4.c文件中
时间: 2024-02-24 21:56:22 浏览: 58
完成代码如下:
```c
#include <stdio.h>
int main() {
int f[20] = {1, 1};
int *p = f + 2;
for (int i = 2; i < 20; i++) {
*(p++) = *(p - 1) + *(p - 2);
}
p = f;
for (int i = 0; i < 20; i++) {
printf("%d ", *(p++));
}
return 0;
}
```
程序中定义了一个长度为20的数组`f`,并用指针`p`指向数组的第三个元素,即`f[2]`。
然后使用循环计算并填充数组的后18个元素,其中每个元素的值都是前两个元素的和。
最后再次使用指针`p`遍历数组并输出每个元素的值。
输出结果为斐波那契数列前20项:
```
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
```
相关问题
在c语言中,计算并输出斐波那契数列前20项,1,1,2,3,5,. . .。要求用指向数组的指针实现,程序中不能出现数组元素的写法
好的,以下是实现斐波那契数列前20项的C语言代码,使用指向数组的指针实现:
```c
#include <stdio.h>
int main() {
int fib[20], *p = fib; // 定义数组和指针
*p = 1; // 第一项为1
*(p + 1) = 1; // 第二项为1
for (int i = 2; i < 20; i++) {
*(p + i) = *(p + i - 1) + *(p + i - 2); // 计算每一项
}
for (int i = 0; i < 20; i++) {
printf("%d ", *(p + i)); // 输出每一项
}
return 0;
}
```
以上代码中,我们首先定义了一个长度为20的整型数组fib和一个指向数组的指针p。指针p指向数组fib的首元素。然后,我们手动给数组的前两项赋值为1,因为斐波那契数列的前两项均为1。接下来,我们使用for循环计算数组的第3项到第20项,每一项的值是前两项的和。最后,我们再使用for循环输出数组的每一项。在输出时,我们使用指针p来访问数组元素,而不是直接使用数组名fib。
用c语言编写数组求斐波那契数列问题 用数组来求斐波那契数列问题前20项 输入说明: 输出说明: 斐波那契数列问题前20项
```c
#include <stdio.h>
int main()
{
int n = 20; // 求前20项
int fib[20] = {0, 1}; // 初始化前两项
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2]; // 计算第i项
}
for (int i = 0; i < n; i++) {
printf("%d ", fib[i]); // 输出前20项
}
return 0;
}
```
输入说明:无需输入,直接运行程序即可。
输出说明:上述程序将输出斐波那契数列问题前20项,即:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181。
阅读全文