为什么在C语言中,这个printf的输出是错误的?

问题如下图所示:

请问为何“f=%d”的输出成了“f=0”?就算强制转换类型,5/2也应该得到2呀?
为什么“i=%f”的输出错误,变成了0.000000?

你这并不是强制类型转换,printf是个变参函数,而且比较“笨”,它只能识别你给他设定好的输出类型,因为你设定为%d,所以只能输出出错,5/2是结果是整数,而5.0/2是浮点数运算,结果为浮点数,所以类型不匹配。 谢谢,望采纳追问

那假如连续几个输出中,第二个输出出错,会对第三个输出有影响?如下图

追答

会影响的,你一个类型错,后面的全都有影响,
所以要加强对printf和scanf函数的掌握,前期可能感觉很不习惯,用久了就会发现这两个函数的好处了

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-07
你这样做5.0/2.0和之后的i=...都没有进行强转
强转得通过变量进行
int i = 5.0/2.0 ;
printf("%d", i );
答案是2

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网