风云苍龙诀:请帮忙看看有什么问题!!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 03:03:02
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
#include "stdio.h"
main()
{
long f1,f2,g1,g2,m,n,i;
float s;
f1=1;f2=3;g1=1;g2=2;s=2;
for (i=1;i<=20;i++)
{
s+=f2/g2;
m=f2;
f2+=f1;
f1=m;
n=g2;
g2+=g1;
g1=n;
}
printf ("sum is %9.6f\n",s);
getch();
}
以上是我编的代码,不觉的有错,但运行显示的结果是:22.000000,得不到32.660259。

#include "stdio.h"
void main()
{
  long f1=2,f2=1,g,i;
  float sum=0;
  for(i=0;i<20;i++)
  {
    sum=sum+(float)f1/f2;
    g=f1+f2;
    f2=f1;
    f1=g;
  }
  printf("%f\n",sum);
getch();
}

把long改成float就好了
不然的话会把小数点截掉的