c 난수 생성 함수

C, C++ 2021. 9. 8. 19:05
728x90
728x90
rand() : 0~32767 사이 랜덤한 숫자 반환

프로그램이 생성될 때 정해지는 값이라 진정한 난수가 아님

int rand(void)

 

필요 헤더파일

<stdlib.h> //C
<cstdlib> //C++

 

 

srand()

프로그램 실행 중에(런타임 동안에) 항상 변하는 seed 값을 넣어주어야 한다.

void srand(unsigned int)
srand(time(NULL));

 

필요 헤더파일

<stdlib.h> //C
<cstdlib> //C++

 

 

time()

1970년 1월 1일 0시 0분 0초를 기점으로 현재까지 흐른 시간을 초단위로 나타낸다.

time_t timer = time(NULL);

 

필요 헤더파일

<time.h> //C
<ctime> //C++

 

 

예제

#include <stdio.h>
#include <string.h>
#include <time.h> //time
#include <stdlib.h> //rand

main()
{
 int you;
 int coin;
 char aspect[][10] = {"", "앞면", "뒷면"};
 
 srand(time(NULL)); //난수 생성
 printf("앞면은 1, 뒷면은 2, 종료는 다른 값을 입력하시오\n");
 
 while(1) {
     coin=rand() %2 + 1;
     printf("동전을 던졌습니다 앞면 뒷면 맞추시오 : ");
     scanf("%d", &you);
     
     if(you<1 || you>2) {
         break;
         
     }else {
         printf("사용자: %s 동전: %s\n", aspect[you], aspect[coin]);
         printf("%s\n", (you==coin)?"맞았음":"꽝");
     }
     printf("\n");
 }
  
}
728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v