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

C++로 세 개의 숫자 중 최댓값 찾는 방법 – if문 완벽 가이드

프로그래밍을 배우는 과정에서 가장 기본적이면서도 자주 등장하는 문제 중 하나가 바로 세 개의 숫자 중 가장 큰 값(최댓값)을 찾는 것입니다. C++에서는 if 문을 여러 번 사용하여 이를 손쉽게 해결할 수 있습니다. 아래 예제 프로그램을 통해 그 방법을 자세히 살펴보겠습니다.

예제 코드

#include <iostream>
using namespace std;
int main() {
   int a = 5 ,b = 1 ,c = 9;
   if(a>b) {
      if(a>c)
      cout<<a<<" is largest number";
      else
      cout<<c<<" is largest number";
   }else {
      if(b>c)
      cout<<b<<" is largest number";
      else
      cout<<c<<" is largest number";
   }
   return 0;
}

실행 결과

9 is largest number

코드 동작 원리 상세 설명

위 프로그램은 두 단계의 비교를 통해 최댓값을 판별합니다. 먼저 변수 ab를 비교하는 것이 첫 번째 단계입니다.

1단계: a와 b 비교 후 a가 클 경우

만약 ab보다 크다면, 다음으로 ac와 비교합니다. 이때 ac보다도 크다면 세 수 중 가장 큰 값은 a이고, 그렇지 않다면 c가 최댓값이 됩니다.

if(a>b) {
   if(a>c)
   cout<<a<<" is largest number";
   else
   cout<<c<<" is largest number";
}

2단계: b가 a보다 크거나 같을 경우

반대로 ab보다 크지 않다면, ba보다 크거나 같다는 의미입니다. 이 경우에는 bc와 비교합니다. bc보다 크면 b가 최댓값이며, 그렇지 않으면 c가 가장 큰 숫자입니다.

else {
   if(b>c)
   cout<<b<<" is largest number";
   else
   cout<<c<<" is largest number";
}

추가 팁: 삼항 연산자로 더 간결하게 작성하기

같은 로직을 삼항 연산자(조건 연산자)를 사용하면 한 줄로도 표현할 수 있습니다.

int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
cout << max << " is largest number";

또한 C++ 표준 라이브러리에서 제공하는 std::max 함수를 활용하면 코드를 더욱 직관적으로 작성할 수 있습니다.

#include <algorithm>
int maxVal = std::max({a, b, c});

마무리

이처럼 조건문을 중첩하여 사용하면 세 개의 숫자 중 최댓값을 쉽게 구할 수 있습니다. 초보자라면 먼저 if-else 문을 이용한 방법으로 비교 논리를 확실히 익힌 후, 삼항 연산자나 std::max 같은 더 간결한 방식으로 발전시켜 나가는 것을 추천합니다.