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

C 언어로 숫자 패턴 출력하기 – 행 개수를 입력받는 프로그램

프로그램 개요

이 프로그램은 사용자로부터 행(row)의 개수를 입력받아, 각 행이 대각선 방향으로 값이 감소하는 규칙을 가진 숫자 패턴을 화면에 출력합니다.

예를 들어 행의 개수를 5로 입력하면 다음과 같은 결과가 출력됩니다.

1
6 2
10 7 3
13 11 8 4
15 14 12 9 5

알고리즘

패턴은 다음과 같은 순서로 생성됩니다.

  1. 각 행의 가장 오른쪽(마지막) 위치부터 패턴을 구성합니다.
  2. 먼저 각 행의 마지막 열을 채웁니다.
  3. 두 번째 행의 뒤에서 두 번째 열부터 시작해 나머지 값을 계산합니다.
  4. 사용자가 지정한 행의 개수만큼 위 과정을 반복합니다.

예제 코드

/* 숫자 패턴 출력 프로그램 */
#include<stdio.h>
#include<conio.h>

int main()
{
    int k, l, m, count = 1;
    int rows;

    clrscr();
    printf("\n 숫자 패턴의 행 개수를 입력하세요: ");
    scanf("%d", &rows);

    for (k = 1; k <= rows; k++) {
        m = count;
        for (l = 1; l <= k; l++) {
            printf("%d ", m);
            m = m - (rows + l - k);
        }
        printf("\n");
        count = count + 1 + rows - k;
    }

    getch();
    return 0;
}

코드 설명

  • 외부 for 루프(k) : 전체 행을 제어합니다. 1행부터 사용자가 입력한 rows행까지 반복합니다.
  • 변수 count : 각 행의 첫 번째 값입니다. 한 행이 끝날 때마다 count = count + 1 + rows - k 공식에 따라 다음 행의 시작 값이 계산됩니다.
  • 내부 for 루프(l) : 현재 행에서 왼쪽부터 오른쪽으로 값을 하나씩 출력합니다.
  • 변수 m : 실제로 출력되는 값입니다. m = m - (rows + l - k) 연산을 통해 대각선 방향으로 값이 줄어드는 규칙을 구현합니다.

참고 : clrscr()getch()는 Turbo C 계열 컴파일러에서 제공되는 함수이므로 conio.h 헤더가 필요합니다. GCC 등 최신 표준 컴파일러 환경에서 실행하려면 이 두 함수 호출과 #include<conio.h> 부분을 제거하면 됩니다.

출력 결과

행 개수로 5를 입력했을 때의 실행 결과는 다음과 같습니다.

C 언어로 숫자 패턴 출력하기 – 행 개수를 입력받는 프로그램


C 언어로 숫자 패턴 출력하기 – 행 개수를 입력받는 프로그램


이처럼 중첩 for 루프와 간단한 산술 규칙만 활용하면 다양한 형태의 숫자 패턴을 손쉽게 만들 수 있습니다. 행 개수를 바꿔가며 직접 실행해 보면 패턴이 생성되는 원리를 더욱 명확하게 이해할 수 있습니다.