| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 442 人关注过本帖
标题:问个小问题,本人菜鸟,不要笑哦!!!
只看楼主 加入收藏
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
结帖率:100%
收藏
 问题点数:0 回复次数:8 
问个小问题,本人菜鸟,不要笑哦!!!
若有定义语句:int b = 7;float a = 2.5,c = 4.7;则表达式 a+(int)(b/3*(int)(a+c)/2)%4 的值为??
我看了答案,结果为5.500000
我有几个问题:1.(int)(a+c)/2,这个运算顺序??先(int)(a+c)还是先(a+c)/2???
   
搜索更多相关主题的帖子: 表达式 
2009-11-08 18:22
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
收藏
得分:0 
一般都是从右向左结合。不过你的表达式。.
 我看不明白..

QQ群:96348241
2009-11-08 18:27
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
收藏
得分:0 
(int)这是强制转换数据类型的语句
2009-11-08 18:36
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
.(int)(a+c)/2
它的结合顺序是:先计算a+c,将结果强制转化为int型,之后其结果/2.
(int)(b/3*(int)(a+c)/2)%4 :同理先算b/3*(int)(a+c)/2,然后强制转化为int型,之后求余。
2009-11-08 19:25
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
收藏
得分:0 
回复 4楼 m456m654
谢谢啊,但是我按照你的方法还是算不到结果啊,结果是正确的,我上机调试了,就是不知道原因在说明地方?
2009-11-08 19:51
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
a+(int)(b/3*(int)(a+c)/2)%4:那我们一起来看看那出问题了:
首先,计算的部分是b/3*(int)(a+c)/2,而且我们知道(int)(a+c)的结果是(int)(2.5+4.7)=7
所以b/3*(int)(a+c)/2变为b/3*7/2,b的值为7,先算b/3,结果为2,然后是2*7/2,结果为7;
所以b/3*(int)(a+c)/2可以用7代替;
a+(int)(b/3*(int)(a+c)/2)%4就简化为:a+(int)7%4,结果为2.5+7%4=2.5+3=5.5
2009-11-08 20:02
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
收藏
得分:0 
回复 6楼 m456m654
非常感谢啊,我想通了,问题出在我应该从左向右运算啊,呵呵!!!
2009-11-08 20:28
红楼夜听雨
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2009-11-4
收藏
得分:0 
从左到右.
2009-11-08 20:34
ni24835
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-8
收藏
得分:0 
wrhsrher
2009-11-08 20:51
快速回复:问个小问题,本人菜鸟,不要笑哦!!!
数据加载中...
 
   



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

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