책 내용 질문하기
질문합니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
84
조회수
1705
작성일
2019-04-04
작성자
탈퇴*원
첨부파일

2018년 10월 정보처리기사 실기 문제3번

 

6면 주사위를 100번 굴려 나온 각 면의 수를 배열에 저장 후 출력하는 c언어 문제입니다.

 

뒤에 해설지를 봐도 이해가 안 가서요.

 

6면 주사위면 1~6의 숫자가 있는 주사위가 아닌가요?

rand(), srand()는 왜 나온 것인지부터 다 이해가 안 갑니다.

 

각 줄마다 이해가기 쉽게 설명 부탁드립니다. 

답변
2019-04-05 11:33:11

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

 

rand함수는 난수를 발생시키는 함수입니다.

즉, rand()를 수행하면 무작위의 수가 발생하죠.

다만 함수의 특징 상 무작위 수를 발생시키기 위해서는 특정 값(seed 값)이 대입되어야 합니다.

만약 동일한 seed값이 입력되면 무작위 수가 아닌 고정된 수가 발생하게 되죠.

(rand 함수는 말만 무작위 함수일 뿐, seed값을 특정 공식에 대입하여 반환되는 값을 출력합니다.)

 

srand(time(null)); 은 이 seed값을 지정해주는 식입니다.

time(null)은 1970년 1월 1일 00분 00초를 현재시간에서 뺀 시간을 '초'로 계산하여 반환합니다.

srand()는 괄호안의 수를 rand함수의 seed 값으로 넣는 함수죠.

이로 인해 rand는 현재 시간을 기준으로 무작위의 수를 반환하게 됩니다. 

 

rand()%6+1 을 봅시다.

rand()는 이제 어떤 수가 나올지 모르는 정말 무작위 수가 되어버렸습니다.(1초 간격으로)

이 수를 %6을 하면 나머지가 0~5사이의 수가 나오겠죠. 이 상태에서 +1을 하게 되면 1~6 사이의 수가 무작위로 나올 것입니다.

 

이제 이 값을 배열에 저장하게 되는 것이죠.

배열의 경우 주소가 0~5로 배정되어 있으니 1~6이 저장된 n에서 -1을 한 값의 위치에 저장해야 하니 빈칸 1번은 n-1이 됩니다.

출력에서 i+1을 한것 처럼요.

 

위의 해설을 참고해서 보신후, 이해가 안되는 부분을 구체적으로 질문해 주시면 추가적으로 답변 드리겠습니다.

 

감사합니다.

  • 관리자
    2019-04-05 11:33:11

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

     

    rand함수는 난수를 발생시키는 함수입니다.

    즉, rand()를 수행하면 무작위의 수가 발생하죠.

    다만 함수의 특징 상 무작위 수를 발생시키기 위해서는 특정 값(seed 값)이 대입되어야 합니다.

    만약 동일한 seed값이 입력되면 무작위 수가 아닌 고정된 수가 발생하게 되죠.

    (rand 함수는 말만 무작위 함수일 뿐, seed값을 특정 공식에 대입하여 반환되는 값을 출력합니다.)

     

    srand(time(null)); 은 이 seed값을 지정해주는 식입니다.

    time(null)은 1970년 1월 1일 00분 00초를 현재시간에서 뺀 시간을 '초'로 계산하여 반환합니다.

    srand()는 괄호안의 수를 rand함수의 seed 값으로 넣는 함수죠.

    이로 인해 rand는 현재 시간을 기준으로 무작위의 수를 반환하게 됩니다. 

     

    rand()%6+1 을 봅시다.

    rand()는 이제 어떤 수가 나올지 모르는 정말 무작위 수가 되어버렸습니다.(1초 간격으로)

    이 수를 %6을 하면 나머지가 0~5사이의 수가 나오겠죠. 이 상태에서 +1을 하게 되면 1~6 사이의 수가 무작위로 나올 것입니다.

     

    이제 이 값을 배열에 저장하게 되는 것이죠.

    배열의 경우 주소가 0~5로 배정되어 있으니 1~6이 저장된 n에서 -1을 한 값의 위치에 저장해야 하니 빈칸 1번은 n-1이 됩니다.

    출력에서 i+1을 한것 처럼요.

     

    위의 해설을 참고해서 보신후, 이해가 안되는 부분을 구체적으로 질문해 주시면 추가적으로 답변 드리겠습니다.

     

    감사합니다.

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