当前位置: 代码迷 >> C语言 >> [原创]求救
  详细解决方案

[原创]求救

热度:101   发布时间:2005-09-11 10:02:00.0
[原创]求救
  1. 有一分数序列:2/1,3/2,5/3,8/5……求出这个数列的前20项之和。

#include "stdio.h" main() { int i,temp; float f1=1,f2=2,sum=0; for(i=1;i<=20;i++) { sum=sum+f2/f1; temp=f2; f2=f1+f2; f1=temp; } printf("The sum is %10.6f\n",sum) ; }

#include "stdio.h" main() { int i,temp; float f1=1,f2=2,sum=0; for(i=1;i<=20;i++) { sum=sum+f2/f1; temp=f2; f2=f1+f2; f1=temp; } printf("The sum is %10.6f\n",sum) ; }

第一个程序的输出结果是:32.660259

第二程序的输出结果是:21.00000

里面只有这个不同:第一个程序是定义 f1,f2为float型,而第二个程序定义f1,f2为int 型。

为什么输出结果就不同了呢?

[此贴子已经被作者于2005-9-11 10:03:14编辑过]


----------------解决方案--------------------------------------------------------
????怎么你发的一样啊
估计知道了你的意思了
当是f1,f2是int 时,  f1/f2 得到的结果是int,
你可以把f1是int,f2是float,这样结果是 float
float与int做计算,结果是float
----------------解决方案--------------------------------------------------------
呵呵。对不起啊。发错了。谢谢你的提醒。我知道哪里错了

----------------解决方案--------------------------------------------------------
  相关解决方案