使用数组求Fibonacci数列的前20项。要求4项一行输出。

#include<stdio.h>
int main()
{
int a[20]={1,1},i=2;
printf("a[0]=a[1]=");
for(i=2;i<20;i++)
{ a[i]=a[i-1]+a[i-2];
a[i-2]=a[i-1];
a[i-1]=a[i];
if(i%4==0)
printf("\n");
printf("a[%d]=",i,a[i]);}
return 0;
}请告诉我,我的程序错在哪里?

斐波那契数列通项公式:斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。
#include<stdio.h>
int main()
{
int a[20]={1,1},i=2;
printf("a[0]=a[1]=");
for(i=2;i<20;i++)
{
a[i]=a[i-1]+a[i-2];
// a[i-2]=a[i-1]; 这两行是多余的
// a[i-1]=a[i];
if(i%4==0)
printf("\n");
printf("a[%d]=%d ",i,a[i]);//加了格式说明符以及空格。
}
return 0;
}
这样写可以不?
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-02
斐波那契数列通项公式:斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。
#include<stdio.h>
int
main()
{
int
a[20]={1,1},i=2;
printf("a[0]=a[1]=");
for(i=2;i<20;i++)
{
a[i]=a[i-1]+a[i-2];
//
a[i-2]=a[i-1];
这两行是多余的
//
a[i-1]=a[i];
if(i%4==0)
printf("\n");
printf("a[%d]=%d
",i,a[i]);//加了格式说明符以及空格。
}
return
0;
}
这样写可以不?
相似回答