float a=2,b=4,h=3; (1/2)*(a+b)*h在C语言中结果为什么是0
答案:3 悬赏:60 手机版
解决时间 2021-04-14 10:37
- 提问者网友:書生途
- 2021-04-14 04:09
float a=2,b=4,h=3; (1/2)*(a+b)*h在C语言中结果为什么是0
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-04-14 04:40
1/2结果为0.
1和2为整型 结果也去整为0.
但是1.0/2为0.5 因为1.0是浮点型
1和2为整型 结果也去整为0.
但是1.0/2为0.5 因为1.0是浮点型
全部回答
- 1楼网友:未来江山和你
- 2021-04-14 05:51
首先执行(1/2)由于是两个整型常量运算,所以结果为整型0
然后执行(a+b)由于是float型,(一般编译器输出6位小数),所以结果是6.000000
接着执行(1/2)的结果0*6.000000(a+b)的结果,由于float的类型级别要比整型要高,所以先把0这个整形转化为0.000000然后再执行乘法运算得0.000000
再执行0.000000*3.000000(由于h定义为float),所以结果为0.000000
- 2楼网友:你哪知我潦倒为你
- 2021-04-14 05:38
你能不能把。
1/2改下。
(1/2)*(a+b)*h ;
改成
(1f/2f)*(a+b)*h;//加个f就证明他们是浮点数了~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯