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


3. 이해
  - 난수를 특정 범위 내에서 원하는 갯수 만큼 만들줄 아는가?
  - 최대/최소/평균값을 이해하는가?

4. 코드

#include <stdio.h>
#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;
}

5. 해설
  - 특정 범위를 구하는 난수 문제는 이전에도 많이 출제 되었습니다. rand() 링크를 클릭하세요.
  - 반복문은 for 문으로 하였습니다.
  - 최대/최소/평균값은 특별히 삼항 연산자 등으로 간단하게 구할수 있어 어렵지 않습니다.

6. 참고
  - 유사 문제
Posted by 카켈