책 내용 질문하기
정보처리기사 실기 알고리즘 132페이지 47번 질문 드립니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
132
조회수
677
작성일
2019-03-26
작성자
탈퇴*원
첨부파일

결과값이 x=5 y=5 z=10이 아닌가요? x=5일때는 *y보다 작지 않아서 while구문이 실행이 않되지 않나요?

답변
2019-03-26 10:02:21

안녕하세요.

 

537쪽 해설을 기준으로 설명을 드리면

마지막 ⑤회 수행 후 x는 5, y는 5, z는 15를 가지고 있습니다.

이 상태에서 ⑥회를 수행하면 While( *x < *y) 조건, 즉 x의 값이 y의 값보다 작지 않으므로, 조건에 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ⑤회 prnt() 함수로 옮깁니다.

x와 y값이 변경되지 않았으므로 즉 x가 y보다 작지 않으므로

⑤회 while 조건에도 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ④회 prnt() 함수로 옮깁니다. 같은 기준으로 ③ ~ ①회 prnt() 함수에서의 while 조건이 모두 어긋나므로

결국 처음 prnt() 함수를 호출한 main() 함수로 되돌아 갑니다.

 

이때 x는 5, y는 5, z는 15를 그대고 유지하고 있으므로 출력되는 값은 

a=5, b=5, c=15가 됩니다. 

 

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

  • 관리자
    2019-03-26 10:02:21

    안녕하세요.

     

    537쪽 해설을 기준으로 설명을 드리면

    마지막 ⑤회 수행 후 x는 5, y는 5, z는 15를 가지고 있습니다.

    이 상태에서 ⑥회를 수행하면 While( *x < *y) 조건, 즉 x의 값이 y의 값보다 작지 않으므로, 조건에 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ⑤회 prnt() 함수로 옮깁니다.

    x와 y값이 변경되지 않았으므로 즉 x가 y보다 작지 않으므로

    ⑤회 while 조건에도 어긋나 prnt() 함수를 종료하고 자신을 호출했던 ④회 prnt() 함수로 옮깁니다. 같은 기준으로 ③ ~ ①회 prnt() 함수에서의 while 조건이 모두 어긋나므로

    결국 처음 prnt() 함수를 호출한 main() 함수로 되돌아 갑니다.

     

    이때 x는 5, y는 5, z는 15를 그대고 유지하고 있으므로 출력되는 값은 

    a=5, b=5, c=15가 됩니다. 

     

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

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