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

C 언어로 나선형 알파벳 패턴 출력하기: 완전 정리

나선형 알파벳 패턴이란?

알파벳을 나선형(spiral) 패턴으로 표현하면 아래와 같은 형태의 출력물이 만들어집니다. 각 줄마다 두 개의 알파벳이 한 쌍을 이루며, 줄이 바뀔 때마다 문자의 순서가 좌우로 뒤바뀌어 지그재그처럼 배열되는 것이 특징입니다.

C 언어로 나선형 알파벳 패턴 출력하기: 완전 정리

핵심 로직

나선형 모델로 알파벳을 표현할 때 사용되는 핵심 로직은 다음과 같습니다.

if(rows<=13 && rows>=1){
    for(i=1;i<=rows*2;i+=2){
        if(k%2==1){
            printf("%c %c",i+64,i+65);
            k++;
        }else{
            printf("%c %c",i+65,i+64);
            k++;
        }
        printf("\n");
    }
}
else{
    printf("Please Enter from 1 to 13 only\n");
}

동작 원리

이 로직의 핵심 요소를 살펴보면 다음과 같습니다.

- ASCII 코드 변환: 대문자 'A'의 ASCII 코드는 65이므로, 변수 i에 64를 더하면 첫 번째 문자를, 65를 더하면 두 번째 문자를 얻을 수 있습니다.
- 2씩 증가하는 반복문: 한 줄에 서로 다른 두 글자를 출력해야 하므로, 반복 변수 i를 2씩 증가시켜 각 줄의 시작 문자를 결정합니다.
- 순서 교차(toggle): 변수 k를 이용해 홀수 번째 줄에서는 오름차순(A B), 짝수 번째 줄에서는 내림차순(D C)으로 출력 순서를 번갈아 바꿉니다. 이 교차가 반복되면서 시각적으로 나선형 느낌을 주는 패턴이 완성됩니다.
- 입력 범위 검증: 알파벳은 총 26개이므로 최대 13줄까지만 표현할 수 있습니다. 따라서 입력값이 1~13 범위를 벗어나면 안내 메시지를 출력하고 종료합니다.

전체 프로그램

다음은 알파벳을 나선형 패턴으로 출력하는 전체 C 프로그램입니다.

#include<stdio.h>
main(){
    int i,rows,k=1;
    printf("Enter number of Rows for Spiral Alpha Pattern from 1 to 13\n");
    scanf("%d",&rows);
    if(rows<=13 && rows>=1){
        for(i=1;i<=rows*2;i+=2){
            if(k%2==1){
                printf("%c %c",i+64,i+65);
                k++;
            }else{
                printf("%c %c",i+65,i+64);
                k++;
            }
            printf("\n");
        }
    }else{
        printf("Please Enter from 1 to 13 only\n");
    }
}

실행 결과

위 프로그램을 컴파일하여 실행하고 행 개수로 10을 입력하면 다음과 같은 결과가 출력됩니다.

Enter number of Rows for Spiral Alpha Pattern from 1 to 13
10
A B
D C
E F
H G
I J
L K
M N
P O
Q R
T S

출력 결과를 보면 홀수 번째 줄(A B, E F, I J...)은 알파벳 순서대로, 짝수 번째 줄(D C, H G, L K...)은 역순으로 출력되며, 이 규칙적인 교차가 반복되어 나선형 패턴이 형성됩니다. 이 프로그램은 반복문과 조건문, ASCII 코드 활용법을 동시에 연습할 수 있는 좋은 예제이므로, C 언어 초보자의 패턴 출력 문제 학습에 활용하기에 적합합니다.