숫자를 랜덤으로 뽑아서 출력하게 하는 코드이다.
난수 생성기
#include <stdio.h>
#include <stdlib.h> //srand, rand를 사용하기 위한 헤더파일
#include <time.h> // time을 사용하기 위한 헤더파일
int main()
{
srand(time(NULL)); // 난수 초기화
for (int i = 0; i< 10; i++) // 10회 반복
{
int random = rand() % 5; // 0 ~ 4 사이의 숫자를 뽑아서 random 변수에 저장
printf("%d ", random); // 출력
}
return 0;
}
(실행결과)
먼저, rand함수는 rand % (숫자) 를 함으로써 원하는 숫자의 범위를 지정할 수 있다.
ex) rand() % 5 => 0 ~ 4사이의 랜덤한 숫자
ex) (rand() % 5) + 1 => 1 ~ 5사이의 랜덤한 숫자
그리고 7번째 줄인 srand(time(NULL)); 이 필요한 이유는 컴퓨터 내부에 저장된 난수를 초기화 하기 위해서이다. srand(time(NULL)); 가 없게 되면 처음 실행할때 생성된 난수가 저장이 되어서 다음번 실행을 해도 계속 같은 결과값만 나오게 된다.
srand(time(NULL));이 빠졌을때
#include <stdio.h>
#include <stdlib.h>
int main()
{
for (int i = 0; i< 10; i++)
{
int random = rand() % 5;
printf("%d ", random);
}
return 0;
}
(실행결과)
둘이 같은 사진처럼 보이지만 다른 사진이다.
하지만 srand(time(NULL)); 을 사용하게 된다면, 실행 할 때마다 새로운 결과값이 나오게 될 것이다.
'C언어 > C_지식_정리' 카테고리의 다른 글
[C 언어] 현재 콘솔창의 커서 위치 바꾸기 (0) | 2020.04.14 |
---|---|
[C 언어] 현재 콘솔창의 커서 좌표 알아내기 (0) | 2020.04.14 |
[C 언어]do while로 최소 한번은 무조건 출력후 반복하기 (0) | 2019.12.23 |
[C 언어] 반복문을 원할때 빠져나가게 할 수 있는 break, continue (0) | 2019.12.23 |