比如说这个程序,最后a中存储的值(double类型)是1.000000,这个值,前16位(二进制)肯定是0,所以使用%d格式的时候,它不会判断对应的变量是什么类型,就直接把它的前16位以整数的形式输出,所以输出的结果必然是0
所以使用%d并不能使输出结果转换为对应的整数,请改用%.0f输出(因为你的变量a是double型),就可以输出1
你的fun里的形参a是个int类型,你写a=1.0/a,相当于把1.0/a的结果又强制转换成了int,因为你的a肯定比1大,所以结果当然还是0,建议把a=1.0/a改成return 1.0/a,a=0改为return 0如果后面还有一个int s,你要求输出s。因为你的第一个s已经赋值为0了,第二个s在循环里面,还没有跑完就直接输出了,这时候输出的是第一个s,当然是0了。至于去掉int后,s指向于刚开始你定义的int s,经过循环运算后,s就被赋值为30了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)