#include <stdio.h>
// [함수 원형 선언]
void inputArray(int *arr, int size);
void printArray(int *arr, int size);
void getMaxMin(int *arr, int size, int *maxOut, int *minOut);
void doubleArray(int *arr, int size);
int main() {
int numbers[5]; // 데이터를 저장할 배열
int myMax, myMin; // 최댓값과 최솟값을 받아올 변수
//1. 입력 받기
printf("정수 5개를 입력하세요: ");
inputArray(numbers, 5);
//2. 현재 상태 출력
printf("입력된 데이터: ");
printArray(numbers, 5);
//3. 최댓값, 최솟값 찾기 (포인터로 결과 2개 받아오기)
getMaxMin(numbers, 5, &myMax, &myMin);
// TODO: getMaxMin 함수를 호출하세요. (인자 전달 주의!)
// getMaxMin( ... );
printf("\n[분석 결과]\n");
printf("최댓값: %d, 최솟값: %d\n", myMax, myMin);
//4. 값 2배로 만들기 (Call by Reference)
printf("\n[데이터 2배 증가 실행]\n");
doubleArray(numbers, 5);
//5. 변경된 결과 확인
printf("변경된 데이터: ");
printArray(numbers, 5);
return 0;
}
// 1. 입력 함수
void inputArray(int *arr, int size) {
// TODO: 포인터를 사용하여 입력받기
// 힌트: scanf("%d", arr + i);
for (int i = 0; i < size; i++) {
scanf("%d ",arr+i);
}
}
// 2. 출력 함수
void printArray(int *arr, int size) {
// TODO: 배열 요소 출력하기
for (int i = 0; i < size; i++) {
printf("%d ", *(arr+i));
}
printf("\n");
}
// 3. 최댓값/최솟값 동시 추출 함수 (핵심 미션!)
void getMaxMin(int *arr, int size, int *maxOut, int *minOut) {
// 일단 첫 번째 값을 현재까지의 최대/최소로 설정
*maxOut = arr[0];
*minOut = arr[0];
// TODO: 반복문을 돌며 arr[i]와 *maxOut, *minOut을 비교하여 갱신하세요.
// 주의: maxOut은 주소이므로 값을 비교하려면 *maxOut을 써야 합니다.
for (int i = 1; i < size; i++) {
if(*maxOut<arr[i]){
*maxOut=arr[i];
}
if(*minOut>arr[i]){
*minOut=arr[i];
}
}
}
// 4. 2배 증가 함수
void doubleArray(int *arr, int size) {
// TODO: 배열의 모든 요소에 2를 곱해서 저장하세요.
for (int i = 0; i < size; i++) {
arr[i]=arr[i]*2;
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: