在c语言中,计算并输出斐波那契数列前20项,1,1,2,3,5,. . .。要求用指向数组的指针实现,程序中不能出现数组元素的写法
时间: 2024-02-24 19:57:51 浏览: 14
好的,以下是实现斐波那契数列前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语言编写程序,输出Fibonacci数列1, 1, 2, 3, 5,8,13,21,….的前20项之和
好的,以下是c语言的程序实现:
```c
#include <stdio.h>
int main() {
int i, n=20, sum=0;
int a=1, b=1, c;
printf("Fibonacci数列前20项为:\n");
printf("%d %d ", a, b);
for(i=3; i<=n; i++) {
c = a + b;
printf("%d ", c);
sum += c;
a = b;
b = c;
}
printf("\n前20项之和为:%d", sum+2); // 注意要加上前两项1和1的和
return 0;
}
```
输出结果:
```
Fibonacci数列前20项为:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
前20项之和为:17710
```
使用c语言计算并输出斐波那契数列的前11项。
### 回答1:
以下是使用 C 语言计算并输出斐波那契数列前11项的代码:
```
#include <stdio.h>
int main() {
int n = 11;
int a = 0, b = 1, c, i;
printf("斐波那契数列前 %d 项为:\n", n);
for (i = 1; i <= n; i++) {
printf("%d ", a);
c = a + b;
a = b;
b = c;
}
return 0;
}
```
输出结果为:
```
斐波那契数列前 11 项为:
0 1 1 2 3 5 8 13 21 34 55
```
### 回答2:
斐波那契数列是由0和1开始,后续的每一项都是前两项的和。要使用C语言计算并输出斐波那契数列的前11项,可以使用循环和数组来实现。
首先,定义一个长度为11的整数数组,用来存储计算得到的斐波那契数列。
然后,使用循环从第3项开始计算每一项的值。使用两个变量a和b,分别表示当前项和前一项的值,将第一项和第二项分别赋值为0和1。
接下来,使用循环计算第3项到第11项的值。循环的次数为11-2=9次。在每一次循环中,通过将a和b的值相加得到当前项的值,并将计算结果赋值给数组的对应位置。
最后,使用循环将数组中的值依次输出到屏幕上。
下面是C语言的代码示例:
```c
#include <stdio.h>
#define SIZE 11
int main() {
int fibonacci[SIZE];
fibonacci[0] = 0;
fibonacci[1] = 1;
for (int i = 2; i < SIZE; i++) {
fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
}
for (int i = 0; i < SIZE; i++) {
printf("%d ", fibonacci[i]);
}
return 0;
}
```
运行以上代码,将会输出斐波那契数列的前11项:0 1 1 2 3 5 8 13 21 34 55。
### 回答3:
斐波那契数列是一个以递归方式定义的数列,其中每个数字等于前两个数字的和。
在C语言中,我们可以使用循环和变量来计算并输出斐波那契数列的前11项。
```c
#include <stdio.h>
int main() {
int n = 11;
int first = 0, second = 1;
int next;
printf("斐波那契数列的前%d项为:\n", n);
for (int i = 1; i <= n; i++) {
if (i <= 2) {
next = i - 1;
} else {
next = first + second;
first = second;
second = next;
}
printf("%d ", next);
}
return 0;
}
```
运行上述代码,我们将得到斐波那契数列的前11项的输出:
```
斐波那契数列的前11项为:
0 1 1 2 3 5 8 13 21 34 55
```
以上代码中,我们通过一个for循环迭代11次,计算每一项的值并将其输出。由于斐波那契数列的第一项和第二项分别为0和1,我们在循环开始前将first和second的初始值设置为0和1。对于每一项,我们将前两项的和赋值给next,并且更新first和second的值,将second赋值给first,将next赋值给second。这样,我们可以在循环中依次计算出每一项的值并输出。