문제5번중에 계산식만 가져온건데
int a= 12, b=8, C=2, d=3;
a /=b++-c*d;
이렇게 되어있으면
a = a/b++-c*d 이렇게 되지요
그러면 연산법칙에 의해
/ *가 먼저 계산이 되면
a = 12/8-(2*3)
a = 1.5-6
a= -5.5 가 되어야하는데
정답에서는 6이랍니다
정답풀이를 보면
a = a/(b++-(C*D))
= 12/(8-(2*3))
= 6 이렇게 나온거라는데
왜 b-(C*D)를 뺴죠? 연산의법칙에 의하면 * 나 /가 먼저 계산되어야하는데 -가 먼저 계산되네요?.//
안녕하세요.
a /= b++ - c * d
에서 /= 연산자는 단순히 / 연산자가 아닙니다.
위 수식은
a = a / (b++ - c * d)
와 같습니다.
그러므로 괄호( ) 안의 수식이 먼저 수행됩니다.
괄호 안에서는 *가 먼저 수행되므로
a = a / ( b++ - c * d )
----
①
-----------
②
---------------
③
의 순으로 수행됩니다.
① c*d = 2*3 = 6
② b++ - ① = 8 - 6 = 2, b++은 후치연산자이므로 ② 계산이 수행한 후 b가 증가하여 b는 9가 됩니다.
③ a / ② = 12 / 2 = 6
그러므로 최종적으로 a에는 6이 저장됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-22 09:43:47
안녕하세요.
a /= b++ - c * d
에서 /= 연산자는 단순히 / 연산자가 아닙니다.
위 수식은
a = a / (b++ - c * d)
와 같습니다.
그러므로 괄호( ) 안의 수식이 먼저 수행됩니다.
괄호 안에서는 *가 먼저 수행되므로
a = a / ( b++ - c * d )
----
①
-----------
②
---------------
③
의 순으로 수행됩니다.
① c*d = 2*3 = 6
② b++ - ① = 8 - 6 = 2, b++은 후치연산자이므로 ② 계산이 수행한 후 b가 증가하여 b는 9가 됩니다.
③ a / ② = 12 / 2 = 6
그러므로 최종적으로 a에는 6이 저장됩니다.
오늘도 즐거운 하루 되세요.