소프트웨어/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>
최대값 : 90.120000
최소값 : 12.340000
평균값 : 54.540000
C:\Work\2005_final_5\Debug>
3. 이해
- 프로그램 실행시 매개변수로 입력 받을줄 아는가?
- 최대/최소/평균값을 이해하는가?
4. 코드
#include <stdio.h>
#include <stdlib.h>
5. 해설
- double 형으로 자료를 받아 출력해야지 소숫점 자릿수가 깨끗하게 나옵니다.
- argc 는 인수의 개수를 argv 는 인수의 내용을 가리키는 포인터로 쓰입니다.
- 자세한 디버깅 방법은 이전 포스트를 참조 하시기 바랍니다.
6. 참고
- 유사 문제
#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. 참고
- 유사 문제