C언어/C언어 예제

[C언어 소스] 산봉우리 출력

언제나휴일 2016. 4. 12. 08:16
반응형

[C언어 소스] 산봉우리 출력

언제나 휴일 티스토리

C언어 소스 산봉우리 출력



5. 반복문 연습 - 산봉우리 출력.c


//5. 반복문 연습 - 산봉우리 출력

 

//입력

//5                - n

 

//출력

//                    *                                      1                        공백(9+9),1, 개행

//                   ***                                    2                        공백(9+8), 3, 개행

//                  *****                                   3                        공백(9+7),5, 개행

//                 *******                                 4                         공백(9+6), 7, 개행

//                *********                                5                         공백(9+5), 9, 개행

//     *         ***********          *                   6  공백4, 1, 공백4, 공백4, 11, 공백4, 공백4, 1, 개행

//    ***      *************        ***                  7  공백3, 3, 공백3, 공백3, 13, 공백3, 공백3, 3, 개행

//   *****    ***************     *****                8  공백2, 5, 공백2, 공백2, 15, 공백2, 공백2, 5, 개행

//  *******  *****************  *******               9  공백1, 7, 공백1, 공백1, 17, 공백1, 공백1, 7, 개행

// *************************************            10   공백0, 9, 공백0, 공백0, 19, 공백0, 공백 0, 9,개행

 

//line:1~2*n

//조건(line<=n)이 참일 때

//공백= (2*n-1)+(2*n-line) = 4*n -1-line

// = 2*line-1

//개행

//조건(line<=n)이 거짓일 때

//공백 = 2*n-line

// = 2*(line-n)-1

//공백 = 2*(2*n-line)    

// = 2*line-1

//공백 = 2*(2*n-line)

// = 2*(line-n)-1

//개행

 

#include <stdio.h>

 

int main(void)

{

    int n;

    int line, space, star;

 

    printf("높이:");

    scanf_s("%d", &n);//입력

 

    for (line = 1; line <= 2 * n; line++)//line: 1~2n

    {

        if (line <= n)//line is 1~n

        {

            for (space = 1; space <= (4 * n - 1 - line); space++)//공백 4*n - 1 - line

            {

                putchar(' ');

            }

            for (star = 1; star <= (2 * line - 1); star++)// 2*line -1

            {

                putchar('*');

            }

            putchar('\n');//개행

        }

        else//line is n+1 ~ 2n

        {

            for (space = 1; space <= (2 * n - line); space++)//공백 2n-line

            {

                putchar(' ');

            }

            for (star = 1; star <= 2 * (line - n) - 1; star++)// 2*(line-n)-1

            {

                putchar('*');

            }

            for (space = 1; space <= (2 * (2 * n - line)); space++)//공백 2*(2*n-line)

            {

                putchar(' ');

            }

            for (star = 1; star <= (2 * line - 1); star++)// 2*line-1

            {

                putchar('*');

            }

            for (space = 1; space <= (2 * (2 * n - line)); space++)//공백 2*(2*n-line)

            {

                putchar(' ');

            }

            for (star = 1; star <= 2 * (line - n) - 1; star++)// 2*(line-n)-1

            {

                putchar('*');

            }

            putchar('\n');//개행

        }

    }

    return 0;

}

반응형