当前位置: 代码迷 >> C语言 >> 问一道简单的题目
  详细解决方案

问一道简单的题目

热度:87   发布时间:2007-09-26 17:38:10.0
问一道简单的题目
设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);就好了~!!!!
----------------解决方案--------------------------------------------------------
小数点前面加数字都是为了补空格啦
----------------解决方案--------------------------------------------------------
  相关解决方案