求教一道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(
xRJQa"GKL% fxC Dx93OBgkP/̞{~p"z4Oگ)2]^ǃ+ܲ( F[ pUka^:#aW+NdcbR`1.E7P\ " Pk}ο!jP4 N|Ӏ(h%MTg(TgɸH82ʗi XT>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.
希望能帮到你~!