27.11 연습문제: for 반복문에서 변수 두 개 사용하기
다음 소스 코드를 완성하여 정수 2 5, 4 4, 8 3, 16 2, 32 1이 각 줄에 출력되게 만드세요.
practice_for_multiple_variable.c
#include <stdio.h> int main() { for (_____________________________________) { printf("%d %d\n", i, j); } return 0; }
실행 결과
2 5 4 4 8 3 16 2 32 1
정답
int i = 2, j = 5; i <= 32; i *= 2, j--
해설
출력된 숫자의 규칙을 살펴보면 첫 번째 숫자는 2부터 크기가 두 배씩 늘어나고, 두 번째 숫자는 5부터 1씩 줄어듭니다. 따라서 변수를 두 개 선언한 뒤 반복할 때마다 2배씩 만들고, 1씩 감소시킵니다.
즉, 2부터 32까지 출력되며 2배씩 늘어나고, 5부터 1씩 감소하므로 for (int i = 2, j = 5; i <= 32; i *= 2, j--)와 같이 작성하면 됩니다. 또는 for (int i = 2, j = 5; i <= 32 || j >= 1; i *= 2, j--)과 같이 조건식에서 변수 i와 j를 검사하면서 || 논리 연산자를 사용해도 됩니다.