Menu
Coddy logo textTech

요약: 함수 포인터 인자

Coddy C 여정의 Logic & Flow 섹션에 포함된 레슨 — 63개 중 30번째.

challenge icon

챌린지

쉬움

포인터 인수를 사용하여 배열에서 최솟값과 최댓값을 모두 찾는 함수를 구현하는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:

  1. 네 개의 매개변수를 갖는 findMinMax라는 이름의 함수를 생성합니다:
    • 정수형 배열
    • 배열의 크기
    • 최솟값을 저장하기 위한 정수형 포인터
    • 최댓값을 저장하기 위한 정수형 포인터
  2. findMinMax 함수 내부에서 배열을 순회하며 최솟값과 최댓값을 찾습니다.
  3. 역참조 연산자를 사용하여 min 포인터가 가리키는 주소에 최솟값을 저장합니다.
  4. 역참조 연산자를 사용하여 max 포인터가 가리키는 주소에 최댓값을 저장합니다.
  5. main 함수에서 배열의 요소 개수를 나타내는 정수 n을 읽습니다.
  6. n개의 정수 값을 읽어 배열에 저장합니다.
  7. 결과를 저장할 두 개의 정수형 변수 minValuemaxValue를 선언합니다.
  8. 배열, 배열의 크기, 그리고 minValuemaxValue의 주소를 전달하여 findMinMax 함수를 호출합니다.
  9. 결과를 Minimum: [value]Maximum: [value] 형식으로 출력합니다.

예를 들어, 입력이 다음과 같다면:

5
12 7 23 4 18

출력은 다음과 같아야 합니다:

Minimum: 4
Maximum: 23

이 챌린지는 여러 개의 포인터 인수를 사용하여 단일 함수 호출에서 여러 값을 반환하는 강력한 기술을 보여주며, 이를 통해 함수가 호출한 함수의 스코프에 있는 변수를 수정할 수 있게 합니다.

직접 해보기

#include <stdio.h>

// TODO: 여기에 findMinMax 함수를 작성하세요

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO: 여기에 findMinMax 함수를 호출하세요
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Logic & Flow의 모든 레슨