#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;
    }
}






















Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: