책 내용 질문하기
8장 c언어 함수 기출 따라잡기 문제 3번 (91pg)
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
91
조회수
103
작성일
2017-03-22
작성자
첨부파일

다른분이 이문제 올리신거 봤는데 조금 다른부분에 대한 질문이라서요

a= 0~10 까지인거는 알겠는데요

x가 9일 때 ++x로 인해 x는 먼저 10으로 바뀌게 되는거라고 생각하는데요.

*x < *y 이부분!

10은 10이랑 같기 때문에

*z += *x; 이건 실행안하고 끝나야 되는거 아닌가요? z는 45로 끝나야 되는거구요.

55까지 출력할려면 while(*x<=*y) 이렇게 되어야 되는거 아닌가 싶은데

설명 부탁드립니다.

답변
2017-03-23 11:32:47

안녕하세요.

*x가 9일 때 while(*x < *y)의 조건이 만족하여 다시 반복문을 진입합니다. 이때 *z는 45인 상태입니다.

반복문 안에서

++*x를 만나 *x는 10이 됩니다.

*z = *z + *x를 만나 *z는 55가 됩니다.

반복문 종료 브래이스(})를 만나 반복문의 시작 위치로 제어가 이동하여

while(*x < *y) 조건을 비교합니다. 조건을 만족하지 않으므로 반복문을 수행하지 않고 빠져나옵니다.

현재 *x는 10, *z는 55인 상태입니다.

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

  • *
    2017-03-23 11:32:47

    안녕하세요.

    *x가 9일 때 while(*x < *y)의 조건이 만족하여 다시 반복문을 진입합니다. 이때 *z는 45인 상태입니다.

    반복문 안에서

    ++*x를 만나 *x는 10이 됩니다.

    *z = *z + *x를 만나 *z는 55가 됩니다.

    반복문 종료 브래이스(})를 만나 반복문의 시작 위치로 제어가 이동하여

    while(*x < *y) 조건을 비교합니다. 조건을 만족하지 않으므로 반복문을 수행하지 않고 빠져나옵니다.

    현재 *x는 10, *z는 55인 상태입니다.

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

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