30.3 계단식으로 별 출력하기
계단식으로 별을 출력하려면 어떻게 해야 할까요? 앞에서 사각형 모양으로 별을 출력할 때는 사각형에 꽉 채워서 별을 출력하지만, 계단식으로 출력할 때는 별을 출력하지 않는 부분이 있으므로 조건문으로 printf를 제어해야 합니다.
for (int i = 0; i < 5; i++) // 5번 반복. 세로 방향 { for (int j = 0; j < 5; j++) // 5번 반복. 가로 방향 { // ↓ 별 출력을 제어하기 위한 조건문 if ( ) printf("*"); // 별 출력 } printf("\n"); // 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 }
첫 번째 줄에는 별이 한 개, 두 번째 줄에는 별이 두 개, 세 번째 줄에는 별이 세 개, 네 번째 줄에는 별이 네 개, 다섯 번째 줄에는 별이 다섯 개입니다.
* ** *** **** *****
즉, 별의 개수는 세로 방향인 줄의 위치에 비례하므로 조건식도 세로 방향 변수 i에 맞추어 작성합니다.
for (int i = 0; i < 5; i++) // 5번 반복. 세로 방향 { for (int j = 0; j < 5; j++) // 5번 반복. 가로 방향 { if (j <= i) // 세로 방향 변수만큼 printf("*"); // 별 출력 } printf("\n"); // 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 }
조건식은 if (j <= i)와 같이 작성하여 가로 방향(j)으로 별을 출력할 때는 세로 방향(i)의 변수만큼 출력하면 됩니다. 즉, i가 증가하면 i만큼 별이 늘어나게 됩니다.
조건식 작성이 끝났으니 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.
star_triangle.c
#include <stdio.h> int main() { for (int i = 0; i < 5; i++) // 5번 반복. 세로 방향 { for (int j = 0; j < 5; j++) // 5번 반복. 가로 방향 { if (j <= i) // 세로 방향 변수만큼 printf("*"); // 별 출력 } printf("\n"); // 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 } return 0; }
실행 결과
* ** *** **** *****
소스 코드를 컴파일한 뒤 실행을 해보면 계단식으로 별이 출력되는 것을 볼 수 있습니다.