책 내용 질문하기
문제4번이 이상합니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
76
조회수
65
작성일
2017-04-04
작성자
탈퇴*원
첨부파일

#include
main()
{
int i=10, hap=0;
while (i>1)
{
i-;
if(i%3==1)
hap+=i;
}
printf("%d\n",hap);
}

여기에서 while의 조건은 i가 1보다 클때입니다.

i-로 i의 값은 9가되고 if문의 조건식에 충족하지않아 loop됩니다.

i값이 7이 될때 3으로 나눈후 나머지 값이1이되어 hap는 7이됩니다.

그후 계속 루프가되며 i값이 4가될때 hap의 값은 11이됩니다.

답안지에는 hap의 값이 12라고 되있는데 i값이 4보다 낮으면서 3으로 눴을때 나머지 1이 발생하는 수가 존재한가요?

답변은 i가 1일때 3으로 나누면 몫은 0이되고 나머지는 i수 자체가된다고 그러셨는데

while문의 조건은 i>1입니다.

어떻게 i가 1일때 명령이 수행가능한가요? 1>1이 성립이되나요?

답변
2017-04-04 20:30:38

안녕하세요.

i가 1일 때 3으로 나눈 나머지가 1이 됩니다.

나누는 수보다 나눠지는 수가 작은 경우에는 나눠지는 수 자체가 나머지가 되고 몫은 0이 됩니다.

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

  • *
    2017-04-04 20:30:38

    안녕하세요.

    i가 1일 때 3으로 나눈 나머지가 1이 됩니다.

    나누는 수보다 나눠지는 수가 작은 경우에는 나눠지는 수 자체가 나머지가 되고 몫은 0이 됩니다.

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

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