程序填空题:利用指针输出斐波那契数列前20项
请完善程序,实现以下程序功能:已知斐波那契数列的前两项均为1,从第3项开始,每一项的值为其前面两项之和。下面程序的功能为使用指针依次计算出斐波那契数列的前20项并保存到数组a中,然后再顺序输出。<br>
输出样例:<br>
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 <br>
#include <stdio.h>
int main(void)
{int f[20],i,*p1,*p2,*p3;
f[0]=1;
; //第2项赋值
//在下面的循环中,指针p1,p2,p3依次存储f[i-2],f[i-1],f[i]的地址
for(i=2;;i++)
{p1=&f[i-2];
p2=; //使得p2指向相应的数组元素
p3=&f[i];
*p3=; //求出下一项的值
}
p1=f;//指针p1存储数组f的首地址
for(i=0;i<=19;i++) //依次输出数列的前20项
{printf("%d ",*p1);
; //调整指针变量p1的值,指向下一个数组元素
}
return 0;
}
答案:
第1空: f[1]=1
第2空:i<=19
第3空:&f[i-1]
第4空:*p1+*p2
第5空:p1++
输出样例:<br>
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 <br>
#include <stdio.h>
int main(void)
{int f[20],i,*p1,*p2,*p3;
f[0]=1;
; //第2项赋值
//在下面的循环中,指针p1,p2,p3依次存储f[i-2],f[i-1],f[i]的地址
for(i=2;;i++)
{p1=&f[i-2];
p2=; //使得p2指向相应的数组元素
p3=&f[i];
*p3=; //求出下一项的值
}
p1=f;//指针p1存储数组f的首地址
for(i=0;i<=19;i++) //依次输出数列的前20项
{printf("%d ",*p1);
; //调整指针变量p1的值,指向下一个数组元素
}
return 0;
}
答案:
第1空: f[1]=1
第2空:i<=19
第3空:&f[i-1]
第4空:*p1+*p2
第5空:p1++