소프트웨어/C

[2005년 기말 5번] 최대/최소/평균값 출력 - 매계변수 입력

카켈 2007. 2. 21. 15:40




1. 목적
  - 외부 실행시 매개변수 입력되는 방법을 이해한다.

2. 문제 (점수 : 20 점)
  - main() 함수의 인자로 다섯 개의 실수값을 받아들여서 최대/최소/평균값을 출력하는 프로그램을 만들어라
  - 출력 화면

C:\Work\2005_final_5\Debug>2005_final_5.exe 12.34 56.78 90.12 34.56 78.90
최대값 : 90.120000
최소값 : 12.340000
평균값 : 54.540000

C:\Work\2005_final_5\Debug>

3. 이해
  - 프로그램 실행시 매개변수로 입력 받을줄 아는가?
  - 최대/최소/평균값을 이해하는가?

4. 코드

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
 int i = 0;
 double total, max, min;
 total = 0.0;

 if(argc > 6) puts("입력된 값 초과!");
 else
 {
  if(argc < 6) puts("입력된 값 부족!");
  else
  {
   min = (float)atof(argv[1]);
   max = (float)atof(argv[1]);


   for(i = 1; i < 6; i++)
   {
    min = min > (float)atof(argv[i]) ? (float)atof(argv[i]) : min;
    max = max < (float)atof(argv[i]) ? (float)atof(argv[i]) : max;
    total += (float)atof(argv[i]);
   
   }
   printf("최대값 : %f\n", max);
   printf("최소값 : %f\n", min);
   printf("평균값 : %f\n", total / 5);


  }

 }

 return 0;
}


5. 해설
  - double 형으로 자료를 받아 출력해야지 소숫점 자릿수가 깨끗하게 나옵니다.
  - argc 는 인수의 개수를 argv 는 인수의 내용을 가리키는 포인터로 쓰입니다.
  - 자세한 디버깅 방법은 이전 포스트를 참조 하시기 바랍니다.

6. 참고
  - 유사 문제