1. 목적
- 난수 생성을 정확히 이해한다.
2. 문제 (점수 : 30 점)
- -4.99 ~ 14.99 사이의 정수 50개를 출력하고 최대값과 최소값을 구하여라.
- 출력 화면
생성된 난수 : 6.23 6.48 0.97 5.90 -4.82 -1.18 -3.05 5.32
1.35 -3.78 1.50 13.14 6.66 -0.35 10.38 12.43 -4.26 12.50
8.68 -2.89 14.23 2.65 14.47 -2.31 9.29 4.31 5.16 8.88
-3.16 13.22 9.65 7.01 10.40 2.10 3.09 -0.28 11.39 12.97
9.35 12.87 12.49 0.87 1.36 -4.49 9.71 1.28 9.29 1.88
9.79 4.74
최대값 : 14.47
최소값 : -4.82
평 균 : 5.27
Press any key to continue
1.35 -3.78 1.50 13.14 6.66 -0.35 10.38 12.43 -4.26 12.50
8.68 -2.89 14.23 2.65 14.47 -2.31 9.29 4.31 5.16 8.88
-3.16 13.22 9.65 7.01 10.40 2.10 3.09 -0.28 11.39 12.97
9.35 12.87 12.49 0.87 1.36 -4.49 9.71 1.28 9.29 1.88
9.79 4.74
최대값 : 14.47
최소값 : -4.82
평 균 : 5.27
Press any key to continue
3. 이해
- 난수를 특정 범위 내에서 원하는 갯수 만큼 만들줄 아는가?
- 최대/최소/평균값을 이해하는가?
4. 코드
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
- 특정 범위를 구하는 난수 문제는 이전에도 많이 출제 되었습니다. rand() 링크를 클릭하세요.
- 반복문은 for 문으로 하였습니다.
- 최대/최소/평균값은 특별히 삼항 연산자 등으로 간단하게 구할수 있어 어렵지 않습니다.
6. 참고
- 유사 문제
#include <time.h>
#include <stdlib.h>
int main()
{
int i = 0;
float cal, max, min, total;
cal = max = min = total = 0.0;
srand((unsigned)time(NULL));
rand();
printf("생성된 난수 :\t");
for(i = 0; i < 50; i++)
{
cal = (float)(rand() % 2000) / 100 - 5;
printf("%7.2f\t", cal);
max = max < cal ? cal : max;
min = min > cal ? cal : min;
total += cal;
}
printf("\n최대값 : %0.2f\n최소값 : %0.2f\n평 균 : %0.2f\n",max, min, total / 50);
return 0;
}
- 특정 범위를 구하는 난수 문제는 이전에도 많이 출제 되었습니다. rand() 링크를 클릭하세요.
- 반복문은 for 문으로 하였습니다.
- 최대/최소/평균값은 특별히 삼항 연산자 등으로 간단하게 구할수 있어 어렵지 않습니다.
6. 참고
- 유사 문제