더북(TheBook)

출력 결과를 보면 S가 별표보다 먼저 출력되죠? 그래서 이번에는 S를 출력할 반복문과 별표를 출력할 반복문 2개가 필요합니다. 이를 위해 이중 반복문의 두 번째 반복문 위치에 for 문을 하나 더 만들고 여기서 S를 출력하게 합니다. 구분하기 쉽게 기존 첫 번째 반복문은 바깥쪽 반복문, 두 번째 반복문은 안쪽 반복문이라고 할게요. 안쪽 반복문 위치에 for 문을 2개 작성합니다. 먼저 S를 출력할 반복문을 작성해 볼까요?

3.4.3 오른쪽정렬하기.c

int main(void) {
    for (int i = 0; i < 5; i++) {
        for (int j = i; j <= 5 - 1; j++) { // 빈칸 출력
            printf(""); // printf(" ");
        }
        printf("\n");
    }
    return 0;
}

S의 출력 유형을 보면 처음에는 4번이었다가 3번, 2번, 1번으로 줄어듭니다. 이번에도 역시 i 값을 활용합니다. 먼저 ji와 같다고 선언합니다. 그리고 조건은 j <= 5 - 1로 작성합니다. 바깥쪽 반복문에서 i가 0부터 시작하므로 4까지 5번을 반복하는데, i가 0일 때 첫째 줄에서 S를 4번 출력합니다. 그래서 5보다 1 작은(5 - 1) 4까지만 출력하도록 조건을 넣습니다. 그러면 i가 0일 때 j는 0, 1, 2, 3까지 반복하며 printf() 문을 실행하고, j가 5일 때는 조건에 맞지 않아서 바로 탈출합니다. 같은 방식으로 i가 1일 때 j는 1, 2, 3까지 반복하고 3번 출력합니다. 다음 반복에는 2번, 마지막에는 1번 출력하고 반복문을 빠져나옵니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.