책 내용 질문하기
2019 정보처리기사 실기 P331 문제 4 정정
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
331
조회수
199
작성일
2019-08-12
작성자
탈퇴*원
첨부파일

while ( i <= cnt )  <-  i=0

while ( j <= cnt )  <-  j=0 

for (int x = 0 ; x <= cnt ; x++)

 

i,j,x 전부 범위가 0 ~ cnt 까지 되어 있는데 

이는 flow chart 에서 1 ~ cnt 인 것이므로 

<= 가 아닌 < 로 정정해야 맞습니다.

 

 

답변
2019-08-14 13:15:37

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

 

606쪽을 기준으로 설명드리겠습니다.

(순서도와 별개로 코드만으로 이해하시는 것이 편합니다.)

 

코드의 cnt는 초기값을 -1을 기준으로 삼고 있습니다. (7번)

이후 8~13번을 수행하면서 cnt가 1씩 누적되고, 자료를 읽다가 EOF를 만나면 break하게 되죠.

그렇다면 각 배열의 자료는 0부터 자료가 없는 위치까지 cnt가 누적될 것입니다.

(예를 들어 5개의 자료가 있다면 0~4에 저장되고 cnt가 5가 될때 EOF가 되어 break됨)

 

EOF를 통해 break 되었다면 자료가 누적된 마지막 위치 정보를 획득하기 위해 14번의 코드에서 cnt--를 수행합니다.

결국 마지막 값이 있는 배열의 위치는 cnt 값이 되게 되죠.

(5개의 자료가 있다면 cnt의 값이 5였다가 cnt--를 만나 4가 됨. 결국 0~4에 값이 저장되고 cnt는 4의 값을 가짐)

 

때문에 while의 조건은 <=cnt 가 되어야 맞습니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-08-14 13:15:37

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

     

    606쪽을 기준으로 설명드리겠습니다.

    (순서도와 별개로 코드만으로 이해하시는 것이 편합니다.)

     

    코드의 cnt는 초기값을 -1을 기준으로 삼고 있습니다. (7번)

    이후 8~13번을 수행하면서 cnt가 1씩 누적되고, 자료를 읽다가 EOF를 만나면 break하게 되죠.

    그렇다면 각 배열의 자료는 0부터 자료가 없는 위치까지 cnt가 누적될 것입니다.

    (예를 들어 5개의 자료가 있다면 0~4에 저장되고 cnt가 5가 될때 EOF가 되어 break됨)

     

    EOF를 통해 break 되었다면 자료가 누적된 마지막 위치 정보를 획득하기 위해 14번의 코드에서 cnt--를 수행합니다.

    결국 마지막 값이 있는 배열의 위치는 cnt 값이 되게 되죠.

    (5개의 자료가 있다면 cnt의 값이 5였다가 cnt--를 만나 4가 됨. 결국 0~4에 값이 저장되고 cnt는 4의 값을 가짐)

     

    때문에 while의 조건은 <=cnt 가 되어야 맞습니다.

     

    행복한 하루되세요 :)

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