问题如下图所示:
请问为何“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
强转得通过变量进行
int i = 5.0/2.0 ;
printf("%d", i );
答案是2