난수 초기화란
난수 초기화란, 랜덤한 수가 반복되어 나오는 현상을 없애는 과정이라고 생각하면 될듯하다.
난수 초기화를 하지 않으면, 랜덤 함수에서 랜덤한 수가 나오는 듯 싶긴 하나 코드를 또 한 번 실행하였을 때 출력되는 값이 동일하여
마치 랜덤한 값이 어딘가에 저장되고, 저장된 값이 계속 나오는 듯하다.
난수 초기화를 위해선
srand(time(NULL));
을 사용하면 되며, 아래는 그 예시이다.
난수 초기화 이전
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void) {
printf("난수 초기화 이전..\n");
for (int i = 0; i<10; i++) {
printf(" %d ", rand()%10);
}
return 0;
}
난수 초기화 이후
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void) {
printf("난수 초기화 이후..\n");
srand(time(NULL)); // 난수 초기화
for (int i = 0; i<10; i++) {
printf(" %d ", rand()%10);
}
return 0;
}
'프로그래밍 > C' 카테고리의 다른 글
[C언어] 반환값 return에 대하여 (0) | 2023.05.15 |
---|---|
C언어 switch case문 (0) | 2023.05.15 |
[C언어] 랜덤한 수를 가진 배열 생성 후, 랜덤으로 덧셈, 뺄셈, 나눗셈하기 (0) | 2022.05.27 |
[C언어] 입력한 숫자만큼 숫자를 입력받고, 그 숫자들의 최댓값의 위치 알아내기 (0) | 2022.05.13 |
입력한 숫자만큼 숫자를 입력 받고, 최소/최대/평균을 구하는 프로그램 (0) | 2022.05.10 |