문제 13 · 실습 — 2·4의 배수 판별 오류 수정
수정본을 여러 값(8, 6, 3)에 대해 실행해, 홀수 3이 올바르게 걸러지는지 확인합니다.
cpp
#include <iostream>
using namespace std;
void check(int num) {
cout << num << " -> ";
if (num % 4 == 0)
cout << "입력 정수는 4의 배수입니다.";
else if (num % 2 == 0) // 오류 수정: 2의 배수 여부 별도 검사
cout << "입력 정수는 2의 배수입니다.";
else
cout << "입력 정수는 2의 배수도 4의 배수도 아닙니다.";
cout << '\n';
}
int main() {
check(8); // 4의 배수
check(6); // 2의 배수(4의 배수 아님)
check(3); // 홀수
return 0;
}출력은 다음과 같습니다. 원본 코드였다면 3도 "2의 배수입니다"로 잘못 출력됩니다.
8 -> 입력 정수는 4의 배수입니다.
6 -> 입력 정수는 2의 배수입니다.
3 -> 입력 정수는 2의 배수도 4의 배수도 아닙니다.