c语言计算1+1/2+2/3+3/4……前20项的和怎么
答案:2 悬赏:70 手机版
解决时间 2021-12-04 15:39
- 提问者网友:感性作祟
- 2021-12-03 19:09
c语言计算1+1/2+2/3+3/4……前20项的和怎么
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-12-03 20:07
只需要一个for语句,改成这样:
sum=1;
for(a=1;a<20;a++)
sum=sum+a/(a+1);追答只需要一个for语句,改成这样:
sum=1;
for(a=1;a<20;a++)
sum=sum+(float)a/(a+1);追问(float)是什么意思追答强制转换
因为a是int型,做除法会丢失数据精度,所以要强制转换成float型之后再进行除法运算,才不会丢失精度。追问哦,不加可以吗追答不加的话,除法算出来的结果是0,最后打印出来的sum会是1。因为小数部分的精度全都丢失了。
如果你不想加的话,那就一开始就把a定义成float型就好了。如果你不想加的话,可以一开始就把a定义成float型。追问好哒,谢谢
sum=1;
for(a=1;a<20;a++)
sum=sum+a/(a+1);追答只需要一个for语句,改成这样:
sum=1;
for(a=1;a<20;a++)
sum=sum+(float)a/(a+1);追问(float)是什么意思追答强制转换
因为a是int型,做除法会丢失数据精度,所以要强制转换成float型之后再进行除法运算,才不会丢失精度。追问哦,不加可以吗追答不加的话,除法算出来的结果是0,最后打印出来的sum会是1。因为小数部分的精度全都丢失了。
如果你不想加的话,那就一开始就把a定义成float型就好了。如果你不想加的话,可以一开始就把a定义成float型。追问好哒,谢谢
全部回答
- 1楼网友:蕴藏春秋
- 2021-12-03 21:25
如图
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯