Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 함수를 정의해 네 개 정수 중 최댓값 구하기

네 개의 숫자 a, b, c, d가 있다고 가정해 봅시다. 이번 글에서는 직접 작성한 함수를 활용해 이 네 수 중 최댓값을 구하는 방법을 알아보겠습니다.

핵심 아이디어는 간단합니다. 두 수를 입력받아 그중 큰 값을 반환하는 max() 함수를 하나 만들고, 이 함수를 재사용하여 네 수 전체의 최댓값을 단계적으로 구하는 것입니다.

예를 들어 입력이 a = 5, b = 8, c = 2, d = 3이라면, 출력은 8이 됩니다.

문제 해결 접근 방식

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 두 개의 매개변수 x와 y를 받는 max() 함수를 정의합니다.

  • x와 y 중 더 큰 값을 반환합니다.

  • 네 개의 숫자 a, b, c, d를 준비합니다.

  • left_max := max(a, b) — 앞의 두 수 중 최댓값을 구합니다.

  • right_max := max(c, d) — 뒤의 두 수 중 최댓값을 구합니다.

  • final_max := max(left_max, right_max) — 두 결과를 비교해 최종 최댓값을 구합니다.

  • final_max를 반환합니다.

즉, 네 수를 두 쌍으로 나누어 각각의 최댓값을 먼저 구한 뒤, 마지막으로 두 최댓값을 다시 비교하는 분할 정복 방식입니다. 이렇게 하면 코드가 간결해지고 재사용성도 높아집니다.

예제 코드

아래 구현 예시를 통해 더 자세히 이해해 보겠습니다.

#include <stdio.h>
int max(int x, int y){
    if(x > y){
        return x;
    }else{
        return y;
    }
}
int main(){
    int a = 5, b = 8, c = 2, d = 3;
    int left_max = max(a, b);
    int right_max = max(c, d);
    int final_max = max(left_max, right_max);
    printf("Maximum number is: %d", final_max);
}

입력

a = 5, b = 8, c = 2, d = 3

출력

Maximum number is: 8

코드 설명

max() 함수는 if-else 문을 사용해 x가 y보다 크면 x를, 그렇지 않으면 y를 반환합니다. main() 함수에서는 max(a, b)와 max(c, d)를 호출해 각각 left_max와 right_max에 저장한 후, 이 두 값을 다시 max()에 전달해 final_max를 계산합니다. 최종 결과는 printf()를 통해 화면에 출력됩니다.

참고로 C 표준 라이브러리에는 이미 유사한 기능을 제공하는 매크로나 함수가 있지만, 학습 목적에서는 이처럼 직접 함수를 구현해 보는 것이 프로그래밍 논리를 익히는 데 큰 도움이 됩니다.