Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 피라미드 패턴 출력하기: 알고리즘과 전체 코드 예제


프로그램 개요

피라미드(피라미드형 다면체)는 다각형 모양의 밑면과 하나의 점, 즉 꼭짓점(apex)을 연결하여 만들어지는 다면체입니다. 밑면의 각 변과 꼭짓점이 만나 삼각형을 형성하며, 이 삼각형을 측면(lateral face)이라고 부릅니다. 즉, 피라미드는 다각형 밑면을 가진 원뿔형 입체 도형이라 할 수 있습니다.

n각형 밑면을 가진 피라미드는 n+1개의 꼭짓점, n+1개의 면, 2n개의 모서리를 가지며, 모든 피라미드는 자기 쌍대(self-dual) 구조를 갖습니다.

C 언어로 피라미드 패턴 출력하기: 알고리즘과 전체 코드 예제

알고리즘

이 프로그램은 사용자로부터 행(row) 수를 입력받아 별(*) 문자로 피라미드 모양을 출력합니다. 동작 순서는 다음과 같습니다.

1. 사용자로부터 피라미드를 만들 행의 개수를 입력받는다.
2. 입력받은 행의 개수만큼 반복문을 실행한다.
3. 첫 번째 행에는 별 1개를 출력한다.
4. 행이 내려갈수록 별의 개수를 늘려가며 출력한다.
5. 각 행 앞에는 피라미드 모양이 중앙에 오도록 공백을 출력한다.

예제 코드

다음은 C 언어로 작성한 피라미드 패턴 출력 프로그램의 전체 소스 코드입니다.

/* 피라미드 패턴 출력 프로그램 */
#include<stdio.h>
int main() {
    int r, s, rows=0;
    int t=0;
    clrscr();
    printf("Enter number of rows to print the pyramid: ");
    scanf("%d", &rows);
    printf("\n");
    printf("The Pyramid Pattern for the number of rows are:");
    printf("\n\n");
    for(r=1;r<=rows;++r,t=0) {
        for(s=1; s<=rows-r; ++s){
            printf(" ");
        }
        while (t!=2*r-1) {
            printf("* ");
            ++t;
        }
        printf("\n");
    }
    getch();
    return 0;
}

코드 설명

바깥쪽 for 루프는 행의 개수만큼 반복됩니다. 각 행에서 첫 번째 내부 루프는 왼쪽에 출력할 공백의 개수(rows - r)를 계산해 피라미드가 중앙에 정렬되도록 하고, 두 번째 while 루프는 2*r-1개의 별을 출력합니다. 이렇게 하면 1행에서는 별 1개, 2행에서는 별 3개처럼 홀수 개씩 늘어나는 전형적인 피라미드 형태가 완성됩니다.

실행 결과

위 프로그램을 컴파일하여 실행하고 행의 개수를 입력하면 아래 그림과 같이 별로 이루어진 피라미드 패턴이 화면에 출력됩니다.

C 언어로 피라미드 패턴 출력하기: 알고리즘과 전체 코드 예제