Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
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
Tags
more
Archives
Today
Total
관리 메뉴

뭐라도 쓰겠지

25.03.07-25.03.11 / 중첩 반복문을 사용한 피라미드 본문

프로그래밍/C

25.03.07-25.03.11 / 중첩 반복문을 사용한 피라미드

김데피 2025. 3. 7. 19:58
#include <stdio.h>

void LeftAscendPyramid(int n);
void LeftDescendPyramid(int n);
void RightAscendPyramid(int n);
void RightDescendPyramid(int n);
void CenterAscendPyramid(int n);
void CenterDescendPyramid(int n);
void DiamondPyramid(int n);
void SandglassPyramid(int n);

void EmptyLeftAscendPyramid(int n);
void EmptyLeftDescendPyramid(int n);
void EmptyRightAscendPyramid(int n);
void EmptyRightDescendPyramid(int n);
void EmptyCenterAscendPyramid(int n);
void EmptyCenterDescendPyramid(int n);

void NumberLeftAscendPyramid(int n);
void NumberLeftDescendPyramid(int n);
void NumberRightAscendPyramid(int n);
void NumberRightDescendPyramid(int n);

void AlphaLeftAscendPyramid(int n);
void AlphaLeftDescendPyramid(int n);
void AlphaRightAscendPyramid(int n);
void AlphaRightDescendPyramid(int n);

void main() {
    int num = 8;

    LeftAscendPyramid(num);
    LeftDescendPyramid(num);
    RightAscendPyramid(num);
    RightDescendPyramid(num); 
    CenterAscendPyramid(num);
    CenterDescendPyramid(num);
    DiamondPyramid(num);
    SandglassPyramid(num);

    EmptyLeftAscendPyramid(num);
    EmptyLeftDescendPyramid(num);
    EmptyRightAscendPyramid(num);
    EmptyRightDescendPyramid(num);
    EmptyCenterAscendPyramid(num);
    EmptyCenterDescendPyramid(num);

    NumberLeftAscendPyramid(num);
    NumberLeftDescendPyramid(num);
    NumberRightAscendPyramid(num);
    NumberRightDescendPyramid(num);

    AlphaLeftAscendPyramid(num);
    AlphaLeftDescendPyramid(num);
    AlphaRightAscendPyramid(num);
    AlphaRightDescendPyramid(num);
}

void LeftAscendPyramid(int n) {
    printf("왼쪽 정렬된 오름차순 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= i; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void LeftDescendPyramid(int n) {
    printf("왼쪽 정렬된 내림차순 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= i; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void RightAscendPyramid(int n) {
    printf("오른쪽 정렬된 오름차순 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void RightDescendPyramid(int n) {
    printf("오른쪽 정렬된 내림차순 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void CenterAscendPyramid(int n) {
    printf("가운데 정렬된 오름차순 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void CenterDescendPyramid(int n) {
    printf("가운데 정렬된 내림차순 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void DiamondPyramid(int n) {
    printf("다이아몬드 모양의 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            printf("*");
        }
        printf("\n");
    }
    for (int i = n - 1; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void SandglassPyramid(int n) {
    printf("모래시계 모양의 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            printf("*");
        }
        printf("\n");
    }
    for (int i = 2; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void EmptyLeftAscendPyramid(int n) {
    printf("왼쪽 정렬된 가운데가 비어있는 오름차순 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= i; ++j) {
            if (i != n) {
                if (j == 1 || j == i) printf("*");
                else printf(" ");
            }
            else {
                printf("*");
            }
        }
        printf("\n");
    }
    printf("\n");
}

void EmptyLeftDescendPyramid(int n) {
    printf("왼쪽 정렬된 가운데가 비어있는 내림차순 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= i; ++j) {
            if (i != n) {
                if (j == 1 || j == i) printf("*");
                else printf(" ");
            }
            else {
                printf("*");
            }
        }
        printf("\n");
    }
    printf("\n");
}

void EmptyRightAscendPyramid(int n) {
    printf("오른쪽 정렬된 가운데가 비어있는 오름차순 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            if (i != n) {
                if (j == 1 || j == i) printf("*");
                else printf(" ");
            }
            else {
                printf("*");
            }
        }
        printf("\n");
    }
    printf("\n");
}

void EmptyRightDescendPyramid(int n) {
    printf("오른쪽 정렬된 가운데가 비어있는 내림차순 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            if (i != n) {
                if (j == 1 || j == i) printf("*");
                else printf(" ");
            }
            else {
                printf("*");
            }
        }
        printf("\n");
    }
    printf("\n");
}

void EmptyCenterAscendPyramid(int n) {
    printf("가운데 정렬된 가운데가 비어있는 오름차순 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            if (i != n) {
                if (j == 1 || j == (2 * i) - 1) printf("*");
                else printf(" ");
            }
            else printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void EmptyCenterDescendPyramid(int n) {
    printf("가운데 정렬된 가운데가 비어있는 내림차순 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= (2 * i) - 1; ++j) {
            if (i != n) {
                if (j == 1 || j == (2 * i) - 1) printf("*");
                else printf(" ");
            }
            else printf("*");
        }
        printf("\n");
    }
    printf("\n");
}

void NumberLeftAscendPyramid(int n) {
    printf("왼쪽 정렬된 오름차순 숫자 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= i; ++j) {
            printf("%d", j);
        }
        printf("\n");
    }
    printf("\n");
}

void NumberLeftDescendPyramid(int n) {
    printf("왼쪽 정렬된 내림차순 숫자 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= i; ++j) {
            printf("%d", j);
        }
        printf("\n");
    }
    printf("\n");
}

void NumberRightAscendPyramid(int n) {
    printf("오른쪽 정렬된 오름차순 숫자 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            printf("%d", n - j + 1);
        }
        printf("\n");
    }
    printf("\n");
}

void NumberRightDescendPyramid(int n) {
    printf("오른쪽 정렬된 내림차순 숫자 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            printf("%d", n - j + 1);
        }
        printf("\n");
    }
    printf("\n");
}

void AlphaLeftAscendPyramid(int n) {
    printf("왼쪽 정렬된 오름차순 알파벳 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= i; ++j) {
            printf("%c", 64 + j);
        }
        printf("\n");
    }
    printf("\n");
}

void AlphaLeftDescendPyramid(int n) {
    printf("왼쪽 정렬된 내림차순 알파벳 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= i; ++j) {
            printf("%c", 64 + j);
        }
        printf("\n");
    }
    printf("\n");
}

void AlphaRightAscendPyramid(int n) {
    printf("오른쪽 정렬된 오름차순 알파벳 피라미드\n");
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            printf("%c", 64 + n - j + 1);
        }
        printf("\n");
    }
    printf("\n");
}

void AlphaRightDescendPyramid(int n) {
    printf("오른쪽 정렬된 내림차순 알파벳 피라미드\n");
    for (int i = n; i >= 1; --i) {
        for (int j = 1; j <= n - i; ++j) {
            printf(" ");
        }
        for (int j = 1; j <= i; ++j) {
            printf("%c", 64 + n - j + 1);
        }
        printf("\n");
    }
    printf("\n");
}

 

출력값

더보기
더보기
왼쪽 정렬된 오름차순 피라미드
*
**
***
****
*****
******
*******
********

왼쪽 정렬된 내림차순 피라미드
********
*******
******
*****
****
***
**
*

오른쪽 정렬된 오름차순 피라미드
       *
      **
     ***
    ****
   *****
  ******
 *******
********

오른쪽 정렬된 내림차순 피라미드
********
 *******
  ******
   *****
    ****
     ***
      **
       *

가운데 정렬된 오름차순 피라미드
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************

가운데 정렬된 내림차순 피라미드
***************
 *************
  ***********
   *********
    *******
     *****
      ***
       *

다이아몬드 모양의 피라미드
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************
 *************
  ***********
   *********
    *******
     *****
      ***
       *

모래시계 모양의 피라미드
***************
 *************
  ***********
   *********
    *******
     *****
      ***
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************

왼쪽 정렬된 가운데가 비어있는 오름차순 피라미드
*
**
* *
*  *
*   *
*    *
*     *
********

왼쪽 정렬된 가운데가 비어있는 내림차순 피라미드
********
*     *
*    *
*   *
*  *
* *
**
*

오른쪽 정렬된 가운데가 비어있는 오름차순 피라미드
       *
      **
     * *
    *  *
   *   *
  *    *
 *     *
********

오른쪽 정렬된 가운데가 비어있는 내림차순 피라미드
********
 *     *
  *    *
   *   *
    *  *
     * *
      **
       *

가운데 정렬된 가운데가 비어있는 오름차순 피라미드
       *
      * *
     *   *
    *     *
   *       *
  *         *
 *           *
***************

가운데 정렬된 가운데가 비어있는 내림차순 피라미드
***************
 *           *
  *         *
   *       *
    *     *
     *   *
      * *
       *

왼쪽 정렬된 오름차순 숫자 피라미드
1
12
123
1234
12345
123456
1234567
12345678

왼쪽 정렬된 내림차순 숫자 피라미드
12345678
1234567
123456
12345
1234
123
12
1

오른쪽 정렬된 오름차순 숫자 피라미드
       8
      87
     876
    8765
   87654
  876543
 8765432
87654321

오른쪽 정렬된 내림차순 숫자 피라미드
87654321
 8765432
  876543
   87654
    8765
     876
      87
       8

왼쪽 정렬된 오름차순 알파벳 피라미드
A
AB
ABC
ABCD
ABCDE
ABCDEF
ABCDEFG
ABCDEFGH

왼쪽 정렬된 내림차순 알파벳 피라미드
ABCDEFGH
ABCDEFG
ABCDEF
ABCDE
ABCD
ABC
AB
A

오른쪽 정렬된 오름차순 알파벳 피라미드
       H
      HG
     HGF
    HGFE
   HGFED
  HGFEDC
 HGFEDCB
HGFEDCBA

오른쪽 정렬된 내림차순 알파벳 피라미드
HGFEDCBA
 HGFEDCB
  HGFEDC
   HGFED
    HGFE
     HGF
      HG
       H