[문제]
길이가 5인 int형 배열을 선언해서 프로그램 사용자로부터 총 5개의 정수를 입력 받자!
그리고 입력이 끝나면 다음의 내용을 출력하도록 하자.
- 입력된 정수 중에서 최대값
- 입력된 정수 중에서 최소값
- 입력된 정수의 총 합
단, 반드시 입력을 완료한 상태에서 최대값, 최소값, 총 합을 계산해야 한다.
[실행결과]
1번째 정수 입력: 1
2번째 정수 입력: 5
3번째 정수 입력: 3
4번째 정수 입력: 7
5번째 정수 입력: 9
최대값: 9
최소값: 1
총 합: 25
[코드1]
#include<stdio.h>
int main(void)
{
int str[5];
int Max, Min, Sum, i;
for (i = 0; i < 5; i++)
{
printf("%d번째 정수 입력: ", i + 1);
scanf_s("%d", &str[i]);
}
Max = Min = Sum = str[0];
for (i = 1; i < 5; i++)
{
Sum += str[i];
if (Max < str[i])
Max = str[i];
if (Min > str[i])
Min = str[i];
}
printf("최대값: %d\n", Max);
printf("최소값: %d\n", Min);
printf("총 합: %d\n", Sum);
return 0;
}
[코드2]
#include<stdio.h>
#define LEN 5
void InputNum(int* arr, int len);
int SetMaxNum(const int* arr, int len);
int SetMinNum(const int* arr, int len);
int CalSum(const int* arr, int len);
int main()
{
int arr[LEN];
InputNum(arr, LEN);
printf("최대값: %d\n", SetMaxNum(arr, LEN));
printf("최소값: %d\n", SetMinNum(arr, LEN));
printf("총 합: %d\n", CalSum(arr, LEN));
return 0;
}
void InputNum(int* arr, int len)
{
for (int i = 0;i < len;i++)
{
printf("%d번째 정수 입력: ", i + 1);
scanf_s("%d", &arr[i]);
}
}
int SetMaxNum(const int* arr, int len)
{
int max = arr[0];
for (int i = 0; i < len; i++)
{
if (max < arr[i])
max = arr[i];
}
return max;
}
int SetMinNum(const int* arr, int len)
{
int min = arr[0];
for (int i = 0; i < len; i++)
{
if (min > arr[i])
min = arr[i];
}
return min;
}
int CalSum(const int* arr, int len)
{
int sum = 0;
for (int i = 0; i < len; i++)
sum += arr[i];
return sum;
}
<참고>
윤성우의 열혈 C 프로그래밍