티스토리 뷰

2중, 3중 for문을 사용하면 더 복잡한 형태의 별찍기 패턴을 만들 수 있어요. 이번에는 2중 for문과 3중 for문을 활용한 별찍기 예제를 보여드릴게요.

 


1. 2중 for문 예시: 직사각형 별찍기

먼저, 2중 for문을 사용해 간단한 직사각형 모양의 별찍기 패턴을 만들어볼게요.

 

예시

*****
*****
*****

 

코드

#include <stdio.h>

int main() {
    int i, j, rows = 3, cols = 5;

    for (i = 0; i < rows; i++) {   // 행 반복
        for (j = 0; j < cols; j++) {   // 열 반복
            printf("*");
        }
        printf("\n");   // 한 행이 끝나면 줄 바꿈
    }

    return 0;
}

 

설명:
2중 for문에서 바깥쪽 반복문은 행을, 안쪽 반복문은 열을 담당하며 각 행에 열만큼의 별을 출력합니다.


2. 3중 for문 예시: 피라미드 여러 개 출력하기

이번에는 3중 for문을 사용해 여러 개의 피라미드를 출력해볼게요. 2개의 피라미드 모양을 차례로 출력하는 예제입니다.

출력 형태:

    *
   ***
  *****
 *******
    *
   ***
  *****
 *******

 

코드

#include <stdio.h>

int main() {
    int i, j, k;
    int numPyramids = 2;  // 피라미드 개수
    int height = 4;       // 각 피라미드의 높이

    for (k = 0; k < numPyramids; k++) {   // 피라미드 개수만큼 반복
        for (i = 1; i <= height; i++) {   // 각 피라미드의 높이만큼 반복
            for (j = 1; j <= height - i; j++) {
                printf(" ");   // 공백 출력
            }
            for (j = 1; j <= 2 * i - 1; j++) {
                printf("*");   // 별 출력
            }
            printf("\n");
        }
    }

    return 0;
}

 

설명:
3중 for문에서 바깥쪽 반복문은 피라미드의 개수를 담당하고, 중간 반복문은 각 피라미드의 높이를 담당합니다. 안쪽 반복문은 각 줄에 공백과 별을 출력하는 역할을 해요.

 


3. 왼쪽 정렬된 역직각삼각형

역직각삼각형 모양의 별찍기 예제를 만들어볼게요. 별이 점점 줄어드는 패턴을 구현할 수 있습니다.

출력 형태:

*****
****
***
**
*

 

코드

#include <stdio.h>

int main() {
    int i, j, n;

    printf("출력할 줄 수를 입력하세요: ");
    scanf("%d", &n);

    for (i = n; i >= 1; i--) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

 


4. 다이아몬드 모양

이번에는 다이아몬드 모양을 출력해볼게요. 위쪽과 아래쪽으로 대칭되는 형태의 별을 출력합니다.

출력 형태:

    *
   ***
  *****
 *******
  *****
   ***
    *

 

코드

#include <stdio.h>

int main() {
    int i, j, n;

    printf("출력할 줄 수를 입력하세요: ");
    scanf("%d", &n);

    // 위쪽 피라미드
    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++) {
            printf("*");
        }
        printf("\n");
    }

    // 아래쪽 피라미드
    for (i = n - 1; i >= 1; i--) {
        for (j = 1; j <= n - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

 


5.  오른쪽 정렬된 역직각삼각형

오른쪽으로 정렬된 역직각삼각형도 출력해볼 수 있습니다. 공백과 별을 조합하여 모양을 만듭니다.

 

출력 형태:

*****
 ****
  ***
   **
    *

 

코드

#include <stdio.h>

int main() {
    int i, j, n;

    printf("출력할 줄 수를 입력하세요: ");
    scanf("%d", &n);

    for (i = n; i >= 1; i--) {
        for (j = 1; j <= n - i; j++) {
            printf(" ");
        }
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

 


6.  사각형 모양 별찍기

가로와 세로가 동일한 크기의 사각형을 출력하는 예제입니다. 단순한 2중 for문을 사용하여 구현할 수 있습니다.

출력 형태:

*****
*****
*****
*****
*****

 

코드

#include <stdio.h>

int main() {
    int i, j, n;

    printf("출력할 크기를 입력하세요: ");
    scanf("%d", &n);

    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

 


 

7.  빈 사각형 모양

이제 사각형 내부가 빈 모양을 만들어보겠습니다. 테두리 부분만 별로 출력하는 패턴입니다.

출력 형태:

*****
*   *
*   *
*   *
*****

 

코드

#include <stdio.h>

int main() {
    int i, j, n;

    printf("출력할 크기를 입력하세요: ");
    scanf("%d", &n);

    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
            if (i == 1 || i == n || j == 1 || j == n) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }

    return 0;
}

 


8.  숫자로 된 삼각형 패턴

이번에는 별 대신 숫자를 사용하여 삼각형 패턴을 출력해볼게요.

출력 형태:

1
22
333
4444
55555

 

코드

#include <stdio.h>

int main() {
    int i, j, n;

    printf("출력할 줄 수를 입력하세요: ");
    scanf("%d", &n);

    for (i = 1; i <= n; i++) {
        for (j = 1; j <= i; j++) {
            printf("%d", i);
        }
        printf("\n");
    }

    return 0;
}

 


마무리

이렇게 다양한 패턴의 별찍기 예제를 통해 C언어에서 반복문과 조건문의 활용을 익힐 수 있습니다. 여러 가지 모양을 연습해보면서 응용력을 키우는 것이 중요합니다. 반복문을 제대로 이해하면 더 복잡한 모양도 쉽게 구현할 수 있답니다.

추가 팁

  • 패턴의 공백과 별의 개수를 조절하면서 더 복잡한 모양을 만들어보세요.
  • 자신만의 패턴을 만들고 그 패턴을 C언어로 구현하는 연습을 해보는 것도 좋습니다.
  • 프로그래밍의 기초를 다지기 위한 좋은 연습이므로 다양한 변형을 시도해보세요!
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함