책 내용 질문하기
알고리즘 319, 321 페이지 질문이요
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
321
조회수
31
작성일
2018-09-15
작성자
탈퇴*원
첨부파일

잘못된 경로 오류라면서 글이 안써져서 스크린샷 캡쳐해서 파일로 올려서 질문드렸어요!

답변
2018-09-17 15:08:09

안녕하세요. 길벗 수험서 운영팀입니다.

1. 319쪽, CNT = CNT - 1 이유

[답변]

데이터가 3건이라고 했을 때,

- 3번째 자료를 받고 JUMSU[CNT]와 IRUM[CNT]를 계산합니다.

- 다시 CNT에 1을 더해 CNT는 4가 됩니다.

- READ를 수행 했으나, EOF이기 때문에 YES인 아래로 내려갑니다.

위에서 자료는 3건임에도 CNT가 4인 상황이기 때문에 데이터의 개수와 CNT의 개수를 맞춰주기 위해 CNT에 1을 차감하는 것입니다.

회원님이 제시하신 예시는 데이터가 3건이라고 하셨으나, 2건으로 보이며 CNT가 3으로 종료되었으니 1을 차감하는 것이 맞아보입니다.

2. 321쪽, CNT = CNT -1 이유

[답변]

위와 완전히 동일한 경우 입니다.

코드로 구현해 보면 아래와 같습니다.

while(1) {

cnt = cnt + 1;
if (fscanf(inf, "%d %d %d %d", &bun, &kor, &eng, &mat) == EOF)
break;
data[0][cnt] = bun;
data[1][cnt] = kor + mat + eng;

}

무한 루프(while(1))를 수행하면서 EOF인 경우 빠져나가야 하지만, 빠져나가기 전에 cnt에 1을 더하고 나가게 됩니다.

이 때문에 cnt에 데이터의 개수를 정확하게 저장하기 위해서는 cnt에 1을 차감해야 합니다.

(만약 "CNT = CNT + 1"이 점수 총합을 구하는 구문 아래나 위에 있다면 차감할 필요는 없었겠지만요.)

행복한 하루되세요.^^

  • *
    2018-09-17 15:08:09

    안녕하세요. 길벗 수험서 운영팀입니다.

    1. 319쪽, CNT = CNT - 1 이유

    [답변]

    데이터가 3건이라고 했을 때,

    - 3번째 자료를 받고 JUMSU[CNT]와 IRUM[CNT]를 계산합니다.

    - 다시 CNT에 1을 더해 CNT는 4가 됩니다.

    - READ를 수행 했으나, EOF이기 때문에 YES인 아래로 내려갑니다.

    위에서 자료는 3건임에도 CNT가 4인 상황이기 때문에 데이터의 개수와 CNT의 개수를 맞춰주기 위해 CNT에 1을 차감하는 것입니다.

    회원님이 제시하신 예시는 데이터가 3건이라고 하셨으나, 2건으로 보이며 CNT가 3으로 종료되었으니 1을 차감하는 것이 맞아보입니다.

    2. 321쪽, CNT = CNT -1 이유

    [답변]

    위와 완전히 동일한 경우 입니다.

    코드로 구현해 보면 아래와 같습니다.

    while(1) {

    cnt = cnt + 1;
    if (fscanf(inf, "%d %d %d %d", &bun, &kor, &eng, &mat) == EOF)
    break;
    data[0][cnt] = bun;
    data[1][cnt] = kor + mat + eng;

    }

    무한 루프(while(1))를 수행하면서 EOF인 경우 빠져나가야 하지만, 빠져나가기 전에 cnt에 1을 더하고 나가게 됩니다.

    이 때문에 cnt에 데이터의 개수를 정확하게 저장하기 위해서는 cnt에 1을 차감해야 합니다.

    (만약 "CNT = CNT + 1"이 점수 총합을 구하는 구문 아래나 위에 있다면 차감할 필요는 없었겠지만요.)

    행복한 하루되세요.^^

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