用C语言编写程序:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.........求出前20项之和

急用啊,高手们,给我点帮助吧!!!!!!!!谢谢

#include <stdio.h>
main()
{
float i=1.0,j=2.0,sum=0.0,temp;
int n;
for(n=0;n<20;n++)
{
sum+=j/i;
temp=j; //temp存储前一个分数的分子j
j=i+j; //j赋值为此次循环的分子与分母之和,它将作为下次的分子
i=temp; //i赋值为此次循环的分子,它将作为下次的分母
}
printf("The SUM is %f\n",sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-25
偷个懒~改了下上面的
#include <stdio.h>
void main()
{
int a[30],i;
double s=0;
a[0]=1;a[1]=2;
for(i=2;i<=20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
s+=((double)a[i+1])/a[i];
printf("%lf\n",s);
}

忘了优先级咋排了~这样应该没事

以上数列为菲波拉切数列的变化
1 1 2 3 5 8 13 21.......

后一个除前一个
第2个回答  2008-04-25
#include <stdio.h>
int main()
{
int i=1;
double j1,j2,k1,k2,x,t,sum;
j1=2;j2=3;
k1=1;k2=2;
sum=2/1.0;
while(i++<20){
sum+=j2/k2;
x=j2;j2+=j1;j1=x;
x=k2;k2+=k1;k1=x;
}
printf("前20项和为:%f\n",sum);
return 0;
}
第3个回答  推荐于2017-09-19
#include <stdio.h>
main()
{
int a=1,b=2,t,i;
float sum=0;

for(i=1;i<=20;i++;)
{
sum=sum+(float)b/a;
t=a+b;
a=b;
b=t;
}
printf("%d",sum);
}本回答被提问者采纳
第4个回答  2008-04-25
#include <stdio.h>
void main()
{
int a[30],i;
double s=0;
a[0]=1;a[1]=2;
for(i=2;i<=20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
s+=(double)a[i+1]/a[i];
printf("%lf\n",s);
}
相似回答