문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> int main() { int result = 1; for (int k = 2; k <= 8; k++) { if (k % 3 != 0) { result *= (k % 4); if (result > 50) result %= 10; } } printf("%d", result); return 0; }
정답
0
0
해설
반복문을 순서대로 추적하면 된다.
- k=2: 3의 배수가 아니므로 result = 1 * (2 % 4) = 2
- k=3: 3의 배수이므로 건너뜀
- k=4: result = 2 * (4 % 4) = 2 * 0 = 0
- k=5: result = 0 * (5 % 4) = 0
- k=6: 3의 배수이므로 건너뜀
- k=7: result = 0 * (7 % 4) = 0
- k=8: result = 0 * (8 % 4) = 0 한 번 0이 된 이후에는 계속 0이 유지되며, result > 50 조건은 한 번도 만족하지 않는다. 따라서 최종 출력은 0이다.