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

C 언어로 왼쪽·오른쪽 화살표 패턴 출력하는 프로그램


프로그램 설명

이 프로그램은 사용자가 입력한 행(row) 수만큼 별(*) 문자를 이용해 왼쪽 화살표오른쪽 화살표 패턴을 콘솔 화면에 출력하는 C 언어 예제입니다. 중첩 for 반복문으로 각 행마다 출력할 공백과 별표의 개수를 조절하여 원하는 모양을 만들어 냅니다.

알고리즘

먼저 왼쪽 및 오른쪽 화살표 패턴을 출력할 행의 개수를 입력받습니다. 이후 다음 순서대로 패턴을 출력합니다.

1. 별표(*)로 화살표의 윗부분 패턴을 출력한다
2. 별표(*)로 역직각삼각형 패턴을 출력한다
3. 별표(*)로 화살표의 아랫부분 패턴을 출력한다
4. 별표(*)로 정직각삼각형 패턴을 출력한다

패턴 구조 이해하기

왼쪽 화살표는 윗부분이 공백이 점점 줄어들고 별표가 늘어나는 역직각삼각형, 아랫부분은 그 반대인 정직각삼각형으로 구성됩니다. 오른쪽 화살표는 각 행마다 2×(행−1)개의 공백을 먼저 출력한 뒤 별표를 찍어 오른쪽으로 밀린 형태를 만듭니다.

예제 코드

/*Program to print the Left and right arrow pattern*/
#include<stdio.h>
int main() {
    int r, c, rows; //Left Arrow Pattern
    int r1, c1, rows1; //Right Arrow Pattern
    clrscr();
    printf("Enter number of rows to print the Left Arrow Pattern: ");
    scanf("%d", &rows);
    printf("\n");
    printf("The Left Arrow Pattern is:");
    printf("\n");
    for(r=1; r<rows; r++){
        for(c=1; c<=(rows-r); c++){
            printf(" ");
        }
        for(c=r;c<=rows; c++){
            printf("*");
        }
        printf("\n");
    }
    for(r=1; r<=rows; r++){
        for(c=1; c<r; c++){
            printf(" ");
        }
        for(c=1; c<=r; c++){
            printf("*");
        }
        printf("\n");
    }
    printf("Enter number of rows to print the Right Arrow Pattern: ");
    scanf("%d", &rows1);
    printf("\n");
    printf("The Right Arrow Pattern is:");
    printf("\n");
    for(r1=1; r1<rows1; r1++){
        for(c1=1; c1<=(2*r1-2); c1++){
            printf(" ");
        }
        for(c1=r1; c1<=rows1; c1++){
            printf("*");
        }
        printf("\n");
    }
    for(r1=1; r1<=rows1; r1++){
        for(c1=1; c1<=(2*rows1 - 2*r1); c1++){
            printf(" ");
        }
        for(c1=1; c1<=r1; c1++){
            printf("*");
        }
        printf("\n");
    }
    getch();
    return 0;
}

위 코드에서 외부 반복문은 행을 제어하고, 내부 반복문은 각 행에 출력할 공백과 별표의 개수를 담당합니다. 참고로 clrscr()getch()는 Turbo C 계열 컴파일러 전용 함수이므로, 최신 GCC 같은 환경에서는 #include<conio.h>를 추가하거나 두 함수를 제거하고 getchar()로 대체하면 됩니다.

실행 결과

C 언어로 왼쪽·오른쪽 화살표 패턴 출력하는 프로그램


C 언어로 왼쪽·오른쪽 화살표 패턴 출력하는 프로그램