鱼C论坛

 找回密码
 立即注册
查看: 4582|回复: 7

C运行顺序的问题

[复制链接]
发表于 2012-12-2 12:47:07 | 显示全部楼层 |阅读模式
5鱼币
int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为? 运行顺序先*,然后??

最佳答案

查看完整内容

先计算x+y=7.2,再计算(int)(x+y)=7 然后a%3*7%2/4这个表达式从左往右计算(因为这里面的运算符优先级一样) 算完后再+
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-2 12:47:08 | 显示全部楼层
先计算x+y=7.2,再计算(int)(x+y)=7
然后a%3*7%2/4这个表达式从左往右计算(因为这里面的运算符优先级一样)
算完后再+
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-12-4 14:45:10 | 显示全部楼层
本帖最后由 /yhhEAST/zhh 于 2012-12-4 14:48 编辑

1. x+y=7.2
2. (int)(x+y)=7
3 a%3*7%2/4从左往右计算
4.  再算加法
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-12-4 17:52:45 | 显示全部楼层
这个还要看你怎么个输出法呢!如果你吧结果按%d输出,则答案为0,如果你按照%f输出,答案为2.5!
第一步:(int)(x+y) =7;
第二步:a%3 =1;
第三步:1*7 = 7;
第四步:7%2 = 1;
第五步:1/4 = 0;
第五步:2.5+0 = 2.5;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-12-5 16:41:01 | 显示全部楼层
右往左算,最先括号。取余跟乘除同级
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-12-6 05:58:42 | 显示全部楼层
首先括号内,接着,(int)类型转换,然后%和*和/从左到右运算,最后是+
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-12-6 19:47:52 | 显示全部楼层
运行的结果是x的值,当然这里要看你表达式左边的变量类型了。表达式中先运行小括号里的,然后依次运行“%”、“*”、“%”和“/”最后运算“+”,而“+”后的为0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-7 17:36:02 | 显示全部楼层
%,*,/ 都是同级运算,都按从左至右的顺序进行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表