用C语言求分数序列2/1,3/2,5/3,8/5,13/8,21/13,… 的前25项之和

我写的程序是#include <stdio.h>
void main()
{float s; int a; int b; int amp; int i;
a=1; b=2; s=0;
for(i=0;i<25;i++)
{s=a/b+s;
amp=b;
b=a+b;
a=amp;}
printf(“%f”,s);}
为什么结果不对呢??

第1个回答  2010-12-26
误在s=s+a/b这里,因为a,b都是int型,所以a/b得结果为int型,不是浮点型,所以结果不对
第2个回答  2010-12-22
错误在s=s+a/b这里,因为a,b都是int型,所以a/b得结果为int型,不是浮点型,所以结果不对,本回答被网友采纳
第3个回答  2010-12-22
每个数据项都是分数,必须定义为float,否则计算结果就是0了吧?!
float s,a=1.0,b=2.0,amp;
for(i=0;i<25;i++)
{ s = a/b + s;
amp=b;
b=a+b;
a=amp;}本回答被提问者采纳
相似回答