| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:请教大家一下。。。。
只看楼主 加入收藏
lijinghua
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-7-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
请教大家一下。。。。
求算术表达式的值;
(float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
为什么答案不是3.500000而是3.5呢
2010-07-23 15:46
韦小美
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2010-7-19
收藏
得分:10 
(float)(a+b)/2  /*a+3=5,5/2=2.5
(int)x%(int)y  /(int)x=3,(int)y =2 3%2的莫是1
//2.5+1=3.5
2010-07-23 15:55
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:10 
确实是3.500000 这是在机器上得到的 楼主你这题目是笔试题 还是上机题,
除非有第3军规:我说3.5 那么就是3.5.

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-23 16:01
lijinghua
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-7-23
收藏
得分:0 
回复 3楼 do8do8do8
书上的题目,他给的答案是3.5哈
2010-07-23 16:13
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
回复 4楼 lijinghua
这么说吧 你看到它有printf()语句吗? 有格式化吗?

那道题是哪个人出的,背景是?
什么出版社的书?
哪个老师推荐要看的?
有多少个人赞同你的看法?
有新出的规定要这样的答案?

综合上述这么多因素 还是找不到原因,那么就跳过不做吧,考试的时候 就将就了它 说不定又是那个人出的题。

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-23 16:28
lijinghua
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-7-23
收藏
得分:0 
回复 2楼 韦小美
但是float不是6~7位有效数字吗,这题不该保留7位有效数字吗
2010-07-23 16:29
lijinghua
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-7-23
收藏
得分:0 
回复 5楼 do8do8do8
没有printf哈,那你说是写3.5还是3.500000
2010-07-23 16:32
china_tongxi
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-23
收藏
得分:0 
楼主的书在哪买的,分析完全是错误的,,(a+b)/2中,“/”是取整,结果5/2取整是2 ,,后面结果是1,所以最终结果是
3.000000,,如果想保留一位小数,则在printf()中设定位宽。。

程序运行如下:
#include<stdio.h>
int main()
{
   int a=2;
   int b=3;
   float x=3.5;
   float y=2.5;
   float sum,sum1;
   
   sum=(float)((a+b)/2+(int)x%(int)y);
   printf("sum=%f\n",sum);       //3.000000
   sum1=(float)((a+b)/2+(int)x%(int)y);
   printf("sum=%.1f\n",sum1);   //3.0
   getch();
   return 0;
}
2010-07-23 19:46
快速回复:请教大家一下。。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014955 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved