티스토리 뷰
Programming Language/C basic
[C언어] CHAPTER 08 함수 / Programming 11 / 0.0부터 1.0까지의 난수 반환하기
또야 2021. 4. 4. 16:37반응형
이 때까지
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>도 필요하다.
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 08 함수 / Programming 14 / 두 점 사이의 거리 계산 (0) | 2021.04.04 |
---|---|
[C언어] CHAPTER 08 함수 / Programming 12 / 입력한 값만큼 * 막대 그래프 그리기 (0) | 2021.04.04 |
[C언어] CHAPTER 08 함수 / Programming 07 / 소득세 구하기 (0) | 2021.04.04 |
[C언어] CHAPTER 08 함수 / Programming 06 / even(), absolute(), sign() 함수 작성하기 (0) | 2021.04.04 |
[C언어] CHAPTER 08 함수 / Programming 04 / 윤년 구하기 (0) | 2021.04.04 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요