프로그래밍을 배우는 과정에서 가장 기본적이면서도 자주 등장하는 문제 중 하나가 바로 세 개의 숫자 중 가장 큰 값(최댓값)을 찾는 것입니다. 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
코드 동작 원리 상세 설명
위 프로그램은 두 단계의 비교를 통해 최댓값을 판별합니다. 먼저 변수 a와 b를 비교하는 것이 첫 번째 단계입니다.
1단계: a와 b 비교 후 a가 클 경우
만약 a가 b보다 크다면, 다음으로 a를 c와 비교합니다. 이때 a가 c보다도 크다면 세 수 중 가장 큰 값은 a이고, 그렇지 않다면 c가 최댓값이 됩니다.
if(a>b) {
if(a>c)
cout<<a<<" is largest number";
else
cout<<c<<" is largest number";
}2단계: b가 a보다 크거나 같을 경우
반대로 a가 b보다 크지 않다면, b가 a보다 크거나 같다는 의미입니다. 이 경우에는 b를 c와 비교합니다. b가 c보다 크면 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 같은 더 간결한 방식으로 발전시켜 나가는 것을 추천합니다.