30.6 연습문제: 역삼각형 모양으로 별 출력하기
다음 소스 코드를 완성하여 역삼각형 모양으로 별이 출력되게 만드세요.
practice_star_inverted_triangle.c
#include <stdio.h> int main() { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { ____________________ ... ____________________ } printf("\n"); } return 0; }
실행 결과
***** **** *** ** *
정답
if (j < i) printf(" "); else printf("*");
해설
먼저 별을 출력하는 조건식을 세우려면 출력된 모양을 분석해야 합니다. 윗부분이 넓고 아래로 갈수록 좁아지는 삼각형 모양인데 공백 부분이 하나씩 늘어나고 있습니다.
***** **** *** ** *
공백 부분은 세로 방향인 줄의 위치에 비례하므로 조건식도 세로 방향 변수 i에 맞추어 작성합니다. 단, 여기서는 i보다 j가 1이 작은 상황입니다. 따라서 조건식은 if (j < i)와 같이 가로 방향으로 공백을 출력할 때는 세로 방향의 변수보다 작을 때까지 출력하고, 반대되는 조건에서는 별을 출력하면 됩니다.