티스토리 뷰

반응형

 

이 때까지 

1-4까지의 정수 난수 반환하기 같은

rand() % 4 + 1 식을 활용하는

예제는 해 보았다.

 

이번에는 0.0부터 1.0까지의

난수를 생성하고,

이를 5번 출력하도록 해본다.

 

double f_rand()로 선언한다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
double f_rand();
 
int main(void)
{
    for (int i = 0; i < 5; i++)
        printf("%lf ",f_rand());
 
    return 0;
}
 
double f_rand()
{
    double random;
    random = rand() / (double)RAND_MAX;
 
    return random;
}
 
cs

 

 

 

  - 설명  

double f_rand() 함수에

random이라는 double 형 변수를

하나 선언해준다.

 

random은 

rand() / (double)RAND_MAX;

로 선언해 주었다.

 

이 이유는

rand()는 0부터 32767까지의 난수를

모두 같은 확률로 반환하는데,

RAND_MAX는 32767이므로

이를 나누어 주면

0에서 1이 되기 때문이다.

 

이것을 (double)로 형변환만 시켜주면

0.0 ~ 1.0의 난수가 생성되게 된다.

 

main() 함수에서

for 문을 활용하여

f_rand() 함수를

5번 호출한 값을 출력해준다.

 

 

 

 

  - 결과  

 

 

 

  - 추가  

프로그램을 실행시킬 때마다

다른 난수를 생성하고 싶다면

srand((unsigned) time (NULL));

만 메인 함수 안에 

추가해주면 된다.

#include <time.h>도 필요하다.

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요