본문 바로가기

c언어 문법

c언어 random 함수- 난수 생성하기

난수 만들기 위해서는 rand() 함수를 사용하면 된다. 

* 변수를 지정 할 때 rand로 지정하지 말것. 컴파일 오류가 발생할 수 있음.

 

#include <stdio.h>
#include <stdlib.h>

int main(){
	int rando=0;
	for(int i=0; i<10; i++){
		rando=rand()%9+1;
		printf("%d\n", rando);
	}
}

나 같은 경우는 random한 값을 저장하기 위한 변수를 rando로 정했다. 그냥 멋있으니까?

이 때, 변수에 저장되는 값을 출력해보자.

 

출력화면 1
출력화면 2

이걸 봤을 때 뭔가 이상한점을 느끼지 못하셨는가? 맞다. 출력되는 값이 똑같다. 이러면 진정한 랜덤이 아니다.

아 참고로 rand()%9+1;에 +1은 원래 9를 나눴을 때 나머지인 0~9를 출력하는데, 여기에 1을 더해주어 1~10를 출력하게 해주는 역할을 한다고 보면 된다.

 

그럴땐 다 방법이 있지!

time.h라는 헤더파일을 불러와서 'srand(time(NULL));'를 작성한다.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
	srand(time(NULL));
	int rando=0;
	for(int i=0; i<10; i++){
		rando=rand()%9+1;
		printf("%d\n", rando);
	}
}

이 때, 출력화면을 확인해보자.

출력화면

 

추우울력

 

이런식으로 출력값이 달라지는 것을 확인 할 수 있다. 두둥탁

 

이상 랜덤함수였음. 끝!