问一道简单的题目
设a=2,b=3,x=3.5,y=2.5 求
(float)(a+b)/2+(int)x%(int)y的值
----------------解决方案--------------------------------------------------------
3.500000
----------------解决方案--------------------------------------------------------
如果想要输出的结果是3.5
应该怎么写?
----------------解决方案--------------------------------------------------------
printf("%4.1f",(float)(a+b)/2+(int)x%(int)y);就好了.
----------------解决方案--------------------------------------------------------
%4.1f 怎么会是4 我不懂
----------------解决方案--------------------------------------------------------
随便写什么,反正超出会自动输出全部的整数.
写成.1f最好.
----------------解决方案--------------------------------------------------------
%g不是就OK?
----------------解决方案--------------------------------------------------------
这是一个强制转换,与优先级的问题.书上是有说到这些的.至于输出的有几位小数就与输出的格式有关了.
----------------解决方案--------------------------------------------------------
4楼的如果改成如下:
printf("%2.1f",(float)(a+b)/2+(int)x%(int)y);就好了~!!!!
----------------解决方案--------------------------------------------------------
小数点前面加数字都是为了补空格啦
----------------解决方案--------------------------------------------------------