책 내용 질문하기
최신기출유형 01회 문제5번질문
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
81
조회수
157
작성일
2017-06-22
작성자
탈퇴*원
첨부파일

문제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)를 뺴죠? 연산의법칙에 의하면 * 나 /가 먼저 계산되어야하는데 -가 먼저 계산되네요?.//

답변
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이 저장됩니다.

오늘도 즐거운 하루 되세요.

  • *
    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이 저장됩니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.