求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.但是结果一运行发现结果是0,这是怎么回事?
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/02 20:48:38
![求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf(](/uploads/image/z/1622834-26-4.jpg?t=%E6%B1%82%E6%95%99%E4%B8%80%E9%81%93c%E8%AF%AD%E8%A8%80%EF%BC%9Amain%28%29+%7Bfloat+d%3D2.2%3B+int+x%2Cy%3B+x%3D6.2%3B+y%3D%28x%2B3.8%29%2F5.0%3B+printf%28%22%25d%5Cn%22%2Cd%2Ay%29%3B%7D+%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%3F%E6%88%91%E8%A7%89%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF2%2C%E9%A6%96%E5%85%88x%3D2%2Cy%3D1%2C%E9%82%A3%E4%B9%88%E5%AE%9E%E8%A1%8C%E6%8C%89%E6%95%B4%E5%BD%A2%E8%BE%93%E5%87%BA%E6%98%AF%E5%BC%BA%E5%88%B6%E8%BD%AC%E6%8D%A2%2C%E8%BE%93%E5%87%BA2.%E4%BD%86%E6%98%AF%E7%BB%93%E6%9E%9C%E4%B8%80%E8%BF%90%E8%A1%8C%E5%8F%91%E7%8E%B0%E7%BB%93%E6%9E%9C%E6%98%AF0%2C%E8%BF%99%E6%98%AF%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B%3F)
xRJQa"GKL%
fxC
Dx93OBgkP/̞{~p"z4Oگ)2]^ǃ+ܲ( F[
pUka^:#aW+NdcbR`1.E7P\ "Pk}ο!jP4
N|Ӏ(h%MTg(TgɸH82ʗiXT>knK@͘Sk\KbTA2TрΌ:]gXTišt[>u$ъߐI2I3PseC4!-92)49%!ɛmbl*ذd\0bGzI\)sZHP{Vc0JK
求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.但是结果一运行发现结果是0,这是怎么回事?
求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?
我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.
但是结果一运行发现结果是0,这是怎么回事?
求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.但是结果一运行发现结果是0,这是怎么回事?
如果你改成printf("%f\n",d*y)结果是2.200000
改成printf("%d\n",(int)(d*y))结果就是2
这是因为int可以顺利的转换成float,但是float要顺利转换成int,必须要强制转换,(int)(d*y)
如果float d = 2.2; printf("%d",d);结果还是0.
希望能帮到你~!