ldcf.net
当前位置:首页 >> 7+A/(x%4)=(3%x)/(4%x) >>

7+A/(x%4)=(3%x)/(4%x)

(int)(x+y) -- 括号里的先做,(int)(2.5+4.7)=(int)(7.2)=7. 式子变 x + a%3 *7 %2 /4; a%3 -- a=7; 7除3 取余数,余数得1, 式子变 x + 1 *7 %2 /4; 1 *7 乘法先做 得 7 式子变 x + 7 %2 /4; 7 %2 -- 除2 取余数运算,余数得1, 式子变 x + ...

x+a%3*(int)(x+y)%2/4 =x+7%3*(int)(7.2)%2/4 =x+7%3*7%2/4 =2.5+1*7%2/4 =2.5+4%2/4 =2.5+0/4 =2.5

因为(int)是说运算结果强转成int,所以0.25从浮点数转完int就是0了 或者可以这么理解: (int)(x+y) = 11 11%2 = 1 1/4 = 0 (因为int运算只取整数部分)

一共出现这么几个操作符:(),+,*,%,/,() 优先级顺序依次为:(分块),(强制类型转换),*,+,/,%,其中 / 和 % 优先级相同 所以运算的顺序应该是: 1.执行分块 (x+y) = 2.5 + 4.7 = 7.2; 2.执行强制转换 (int)7.2 = 7; 3.做乘法运算 3 * 7 = 21; 4.现在...

(x+y) = 7.2 (int)(x+Y) = 7 a%3 = 1 a%3*(int)(x+y)%2/4 = 1*7%2/4 = 7%2/4 = 1/4 = 0(所有变量均是Int型) x+0 = 2.5

int a = 7; float x = 2.5, y = 4.7; x+a%3*(int)(x+y)%2/4? 这个主要是考数据类型优先级及其转换的. (unsigned)char/short->int->unsigned int->long->unsigned long->long long->unsigned long long->double..... 另外float一律转换成double

x+a%3*(int)(x+y)%2/4 =x+1*7%2/4 =x+1/4 =x

x y 是double类型,a是int类型? 答案是7。 优先级()最高,然后%,*,/从左到右,其次是+ a+a%3*(int)(x+y)%2/4 它的计算顺序其实是: a+((((a%3)*((int)(x+y)))%2)/4) =7+((((7%3)*((int)(2.5+2.5)))%2)/4) =7+(((1*5)%2)/4)=7+2/4=7+0=7

下面是一步步的演算过程,其实就是java运算符优先级的问题,最后就是一个自动转型的问题,建议楼主不清楚运算优先级的时候多用挂号()x+a%3*(int)(x+y)%2/4 2.5+7%3*7%2/4 2.5+1*7%2/4 2.5+7%2/4 2.5+1/4 2.5+0 2.5

先乘除,后加减.括号优先. 先(int)(x+y),x+y=7.2,int(7.2)=7; 然后7%2=1; 再然后1/4=0,注意1,4都是整数,因此做整数除法,结果只保留整数商. 然后x+0=x=2.5

网站首页 | 网站地图
All rights reserved Powered by www.ldcf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com