程序目的是:2/1 3/2 5/3 8/5 13/8 21/13… 求出这个数列的前N项之和,保留两位小数。
我想用数组来做,但写出来这个程序只有前三个运行结果正常,到了第四个就没有运行结果了。
#include <stdio.h>
int main(int argc, char *argv[])
{
int N,i,x,y;
scanf("%d",&N);
float a[]={2,3},b[]={1,2},sum=0;
float c[100];
for(i=0;i<N;i++)
{
if(i<2)
{
c[i]=a[i]/b[i];
}
else if(i>=2)
{
x=i-1;
y=i-2;
a[i]=a[x]+a[y];
b[i]=b[x]+b[y];
c[i]=a[i]/b[i];
}
}
for(i=0;i<N;i++)
{
sum+=c[i];
}
printf("%.2f\n",sum);
return 0;
}