C언어 - rand()함수

Programming/C 2016. 6. 20. 10:00

<rand()함수>

rand()함수는 난수를 발생시키는 함수이다.

아무 숫자가 한 개를 출력한다.

범위는 0~32767이다.

내가 나타내고 싶은 범위를 나타내고자 할때는 %연산자를 이용하면 쉽게 나타낼 수 있다.

예를 들어 주사위 1~6범위를 하고싶다면...

rand() % 6 = 0~5 범위가 나오는데 여기에 +1을 해준다

(rand() % 6) + 1 = 1~6이다.

stdlib.h헤더파일을 포함해야한다

 


<srand()>

rand()함수의 단점은 매번 같은 값밖에 안나온다... 그렇다면 난수를 나타내고자 하는데 매번 같은 값이 출력된다면 의미가 없을 것이다.

srand()는 괄호 안에 seed값을 넣어주면 매번 다른 숫자가 출력된다.

srand(10), srand(20)이렇게 넣어주면 다른 숫자들이 출력된다.

tdlib.h헤더파일을 포함해야한다

 


<실습>

로또 번호 프로그램을 만들어보자.

Tip) time.h헤더파일을 이용해보자. (저 위에 seed값을 매번 바꿔줄 수 있는 것은 뭐없을까? 바로 계속 변하는 시간을 이용하는 것이다.)

time(null)이라는 함수는 197011일부터 지금까지의 초를 계산한다. 그러므로 실행할 때 마다 시간이 다르기때문에 다른값이 나오게 된다.

 

-결과-

posted by 경원구