I have the following variable decelrations, assignments and variable declerations
variable e is an expression statement which should return the value of the evaulated variables in the expression;
What is the order of precdence of the opperators in the e variable?
Computed it equals = 60;
With a calculator I get 422;
int a, b, c, d;
a = 10;
b = 2;
c = 1;
d = 20;
e = a + b * d / c + a + b / d;
e = 10 + 2 * 20 / 1 + 10 + 2 / 20;
e = 60;
Actually the answer is 60.1
but since variables
are int its showing 60
. It is happening as below
10 + (2 * (20 / 1)) + 10 + (int)(2 / 20) = 10 + (2 * 20) + 10 + (int)0.1
= 10 + 40 + 10 + 0 = 60
Here is a link outlining operator precedence. As for your result, this can also be attributed to integer division (which takes the floor of the result; for instance, 2/20 = 0
).
Just like in school, multiplication and division have priority over addition. So you have:
10 + 2 * 20 / 1 + 10 + 2 / 20 = 10 + 40 + 10 + 0 = 60
* takes first precedence so first, 2*20 =40, 10 + 40 / 1 + 10 + 2 / 20;
/ takes precedence so , 10 + 40 + 10 + 0;
+ takes precedence so, 60
Here is link for operator precedence: Operator precedence
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.