#6 - 제어문 [쉬움]

2018. 12. 29. 13:04카테고리 없음

728x90

문제

1부터 100까지의 하나의 난수를 발생하여 그 수를 맞추는 프로그램을 작성하시오.


   1. 난수 발생

반┌ 2. 난수 추측

 │ 3. 추측한 수와 난수를 비교

복└ 4. 범위 재설정


*이 문제에는 생각보다 많은 기본 개념이 활용된다.

** 자세한 개념에 대해서는 이후 난수를 다루는 문제에서 나눠서 천천히 설명하겠다.



난수란 특정한 배열 순서나 규칙을 가지지 않는 임의의 수를 말한다. 하지만 컴퓨터가 생성한 난수는 대부분 엄밀한 의미에서 예측이 가능하고, 복사할 수 있기 때문에 특별히 모조(pseudo) 난수라 한다. C언어에서 난수를 생성하는 라이브러리 함수인 rand는 함수의 반환값이 int형이다. 인자 부분은 void인데 이것은 이 함수의 인자가 없다는 것을 의미한다. 함수 rand는 0부터 32767 사이의 임의의 정수 숫자를 생성하고 헤더 파일 <stdlib.h>를 필요로 한다.


만약 rand 함수만 독립적으로 사용하면 솔루션을 다시 빌드하여 실행할 때 계속 똑같은 결과가 출력됨을 알 수 있다.

나는 실행마다 다른 난수를 발생시키기 위해 stdlib.h 헤더 파일에 있는 srand 함수 time.h 헤더 파일에 있는 time 함수를 사용했다.

srand 함수는 rand 함수 내의 초기값을 설정하는 함수로서, 현재 시간을 인수로 하면 시간에 따라 초기값이 변경되어 솔루션을 빌드할 때마다 값이 다른 난수를 받을 수 있다.

728x90