책 내용 질문하기
99쪽 문제2번 질문입니다
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
99
조회수
170
작성일
2019-05-07
작성자
탈퇴*원
첨부파일
다른건 이해가 가는데
hist[n-1] += 1;
여기서 hist[n] 으로 해도 되지 않나요?
왜 +=1 을 하는지 모르겠어요
답변
2019-05-07 13:52:40
안녕하세요 길벗수험서 운영팀입니다.
C코드에서 배열은 6으로 선언했을 시 hist[0] ~ hist[5] 의 6개 공간이 배정됩니다.
rand()%6 + 1
을 하는 경우 1~6의 수가 랜덤으로 나오게 됩니다.
이때 이 값으로 hist 배열에 배정하는 경우 존재할 수 없는 hist[6]이라는 공간에 값을 저장하게 되죠.
이를 방지하기 위해 hist[n-1]을 사용한 것입니다.
물론, 아래와 같이 코드를 짤수 있습니다.
n=rand()%6;
hist[n]+=1;
다만 문제 코드에서는 n에 +1을 하여 저장했다는 것을 고려하세요.
행복한 하루되세요 :)
-
관리자2019-05-07 13:52:40
안녕하세요 길벗수험서 운영팀입니다.
C코드에서 배열은 6으로 선언했을 시 hist[0] ~ hist[5] 의 6개 공간이 배정됩니다.
rand()%6 + 1
을 하는 경우 1~6의 수가 랜덤으로 나오게 됩니다.
이때 이 값으로 hist 배열에 배정하는 경우 존재할 수 없는 hist[6]이라는 공간에 값을 저장하게 되죠.
이를 방지하기 위해 hist[n-1]을 사용한 것입니다.
물론, 아래와 같이 코드를 짤수 있습니다.
n=rand()%6;
hist[n]+=1;
다만 문제 코드에서는 n에 +1을 하여 저장했다는 것을 고려하세요.
행복한 하루되세요 :)