C_C++

(C언어) 피라미드 모양의 삼각형 출력하기

고니자니 2022. 10. 22. 08:45
반응형

#삼가형 #피라미드 #정삼각형

 

아래와 같은 피라미드 모양을 출력하는 프로그램을 작성해 보겠습니다.

이런 문제는 먼저 변하는 규칙을 찾아내고, 이 규칙을 반복문을 이용해서 표현을 하면 됩니다.

 

1. 규칙 찾기

이해하기 쉽도록 그림으로 표현해 보겠습니다.

1행에서 별 1개, 2행에서 별 3개, 3행에서 별 5개, ...

이런 식을 생각할 수 있어야 합니다.

행번호 * 2 - 1

이런 계산식을 쉽게 만들 수 있다면 컴퓨터 프로그램을 잘 할 수 있습니다.

 

2. 규칙을 프로그램 코드로 표현하기

반복문 for를 이용해서 코딩을 하면 다음과 같습니다.

#include <stdio.h>

int main()
{
    int i, j;
    for (i = 1; i <= 5; i++)
    {
        for (j = 0; j < 5-i; j++)
            printf(" ");
        for (j = 0; j <i*2-1; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}

(Output)

3. 코드 수정

이번에는 5줄이 아니라, 입력받은 수 만큼의 행을 출력하도록 코드를 수정해 보겠습니다.

위 코드 중에서 숫자 5가 출력되는 행의 수입니다. 이 값을 입력 받은 값으로 변경하면 됩니다.

수정된 코드는 다음과 같습니다.

#define _CRT_SECURE_NO_WARNINGS   // 비주얼스튜디오에서, scanf 함수 때문에 필요
#include <stdio.h>

int main()
{
    int i, j;
    int n;                          // 변수 n을 선언
    printf("몇 행을 출력할까요? ");
    scanf("%d", &n);                // 입력 받은 값을 n에 저장

    for (i = 1; i <= n; i++)        // 5를 n으로 변경
    {
        for (j = 0; j < n-i; j++)   // 5를 n으로 변경
            printf(" ");
        for (j = 0; j <i*2-1; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}

(Output)

 

반응형