◎ rand 함수
- rand 함수는 난수를 발생시키는 함수이다. 범위는 0~32767.
rand 함수의 활용 |
#include <stdlib.h> // 해당 파일을 포함시켜 줘야 rand 함수를 사용할 수 있다. int main() { int nNum = 1; // 번호 출력용 for(int nCount = 0; nCount < 3; ++nCount) { int nRandom = rand(); // 난수를 생성 printf("[%d] %d\n", nNum, nRandom); nNum++; } return 0; } |
결과값
|
rand 함수는 0~32767의 난수를 생성한다.
출력되는 난수의 범위를 지정하고 싶으면 rand() % 100 이런 식으로 범위를 정할 수 있다.
rand 함수 범위 지정 |
#include <stdlib.h>
int main() { int nNum = 1; for(int nCount = 0; nCount < 3; ++nCount) { // 생성된 난수를 100으로 나눈 나머지 값을 구한다. int nRandom = rand() % 100; printf("[%d] %d\n", nNum, nRandom); nNum++; } } |
결과값
|
% 100을 추가해 주고나서는 0~99까지의 난수가 출력된다.
이제 실행될때마다 다른 수가 생성될꺼라 생각했지만.... rand 함수만 사용해서는 프로그램 실행때마다 다른 수를 생성할 수 없다.
|
3번의 실행결과.
이때 필요한 함수가 바로 srand 함수.
◎ srand 함수
- 초기값을 지정하여 rand함수의 난수를 매번 다르게 생성해주는 함수이다.
- 초기값이 같으면 srand함수를 사용해도 매번 같은 값이 생성되게 때문에 time() 함수를 넣어 사용한다.
srand 함수의 활용 |
#include <stdio.h> #include <stdlib.h> #include <time.h> // time함수를 사용하기 위해서 선언 int main() { int nNum = 1; // 항상 다른 seed값을 넣어주기 위해 time함수를 인자로 넣어준다. srand((unsigned int)time(NULL)); for(int nCount = 0; nCount < 3; ++nCount) { int nRandom = rand() % 100; printf("[%d] %d\n", nNum, nRandom); nNum++; } return 0; } |
결과값
|
매번 다른 seed값이 적용되면서 실행시마다 다른 난수값이 생성된다.
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] printf 함수에 사용되는 특수문자, 서식문자 (0) | 2016.05.12 |
---|---|
[C언어] scanf, scanf_s 함수 (0) | 2016.04.27 |
[C언어] C언어의 변수 범위 (0) | 2016.04.14 |
[C언어] while문 (0) | 2016.04.04 |
[C언어] 삼항연산자 (0) | 2016.03.25 |