C:帮我看看程序,我实在看看不出问题在哪

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:14:34
#include <stdio.h>
main()
{float s=0, a=1,b=2;
int i,n=20,c;
for(i=1;i<=n;i++)
{s=s+b/a;
c=b;
b=a+b;
a=c;
}
printf("2/1+3/2+5/3+8/5+...=%d",s);
return(0);
}

呵呵,可惜了,功亏一篑

printf("2/1+3/2+5/3+8/5+...=%d",s);
改为:
printf("2/1+3/2+5/3+8/5+...=%f",s);

s是浮点型,用%f来输出,用%d输出,由于两种数据类型szie不一样,会有数据丢失

printf("2/1+3/2+5/3+8/5+...=%d",s);

这句错了,因为s定义的是float(单精度浮点型),输出时应该用“%f”参数而

不是用“%d”,“%d”是用来输出整型的。

所以改为

printf("2/1+3/2+5/3+8/5+...=%f,s); 即可

貌似是你用这种做法就不对
你试试这个:
#include<stdio.h>
main()
{
int a=3, b=2;
float i;
i=a/b;
printf("%f\n",i);
}
结果是1.000000
你把a和b改成浮点数才对呢

int i,n=20,c;
i没有被初始化.只有n=20

因为s是浮点数

所以printf里的占位符应为%f