#include #include #include double fun(int n) { int a=2,b=1,c,k; double s=0.0; for (k=1;k<=n;k++) { s=s+(double)a/b; c=a;a=a+b;b=c; } return (s); } void main() { int n=5; system("cls"); printf("\nthe value of function is:%1f\n",fun(n)); } 程序是无误的,但是其中s=s+(double)a/b;这里的(double)何解?
3 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
s=s+(double)a/b,这里的(double)是把a进行
强制类型转换
,从int转换成double。如果不进行转换的话,由于a和b都是int,a/b的结果也就会取整(这个程序看不出区别,但是当a=1,b=2时,a/b就因为取整为0,而不是你想要的0.5),导致可能与
你想要的结果
不一样。
- 3 回答
- 0 关注
- 735 浏览
添加回答
举报
0/150
提交
取消
