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

C 언어로 다이아몬드 패턴 출력하기: 단계별 프로그래밍 가이드

프로그램 개요

다이아몬드 패턴은 피라미드 패턴역피라미드 패턴을 결합한 형태입니다. 위쪽 절반은 숫자가 점점 늘어나는 피라미드 모양으로 출력되고, 아래쪽 절반은 반대로 줄어들며 대칭을 이룹니다. 이 패턴은 중첩 반복문(nested loop)의 동작 원리를 이해하는 데 매우 유용한 예제로 자주 활용됩니다.

알고리즘

1행: 1 출력
2행: 1, 2, 3 출력
3행: 1, 2, 3, 4, 5 출력
4행: 1, 2, 3, 4, 5, 6, 7 출력
5행: 1, 2, 3, 4, 5, 6, 7, 8, 9 출력
5행 아래에 4행부터 1행까지 동일한 내용을 역순으로 출력

C 소스 코드

/* 다이아몬드 패턴 출력 프로그램 */
#include<stdio.h>
int main(){
    int i,j,k;
    clrscr();
    printf("\n");
    printf("Diamond Pattern");
    printf("\n");
    printf("\n");
    /* 상단 피라미드 부분 */
    for(i = 1;i<=5;i++){
        for(j = i;j<5;j++){
            printf(" ");
        }
        for(k = 1;k<(i*2);k++){
            printf("%d",k);
        }
        printf("\n");
    }
    /* 하단 역피라미드 부분 */
    for(i = 4;i>=1;i--){
        for(j = 5;j>i;j--){
            printf(" ");
        }
        for(k = 1;k<(i*2);k++){
            printf("%d",k);
        }
        printf("\n");
    }
    getch();
    return 0;
}

코드 설명

이 프로그램은 두 개의 주요 루프로 구성됩니다.

상단 부분: 바깥쪽 for 문이 1부터 5까지 행을 제어합니다. 첫 번째 내부 루프는 각 행마다 공백을 출력해 오른쪽 정렬 효과를 만들고, 두 번째 내부 루프는 k < i*2 조건에 따라 홀수 개의 숫자를 출력합니다.

하단 부분: 바깥쪽 for 문이 4부터 1까지 감소하며 역피라미드를 그립니다. 공백 출력 조건(j > i)과 숫자 출력 로직은 상단과 동일하게 유지되어 완벽한 대칭 구조를 완성합니다.

참고: clrscr()getch()는 Turbo C 등 구형 컴파일러에서 사용되는 함수입니다. 최신 컴파일러(GCC 등)에서는 해당 함수를 제거하고 system("pause") 또는 표준 입력 함수로 대체할 수 있습니다.

실행 결과

    1
   123
  12345
 1234567
123456789
 1234567
  12345
   123
    1

위와 같이 중앙을 기준으로 좌우 대칭인 다이아몬드 모양의 숫자 패턴이 화면에 출력됩니다. 행 크기를 변경하고 싶다면 루프의 반복 횟수(현재 5)를 조정하면 됩니다.