[C언어 소스] 다이아몬드 출력

알고리즘

n:←정수 입력

반복(line:0→n)

반복(space:0→n-line-1)

공백 출력

반복(star:0→2*line+1)

‘*’ 출력

개행

반복(line:n-2→n)

반복(space:0→n-line-1)

공백 출력

반복(star:0→2*line+1)

‘*’ 출력

개행

다이아몬드 출력 실행 화면

소스코드

//반복문 연습 - 다이아몬드 출력

// 입력
// 5                - n

//출력
//     *             0- 공백 4, 별1, 개행
//    ***           1- 공백 3, 별3, 개행 
//   *****         2- 공백2, 별5, 개행
//  *******        3- 공백1, 별7, 개행 
// *********      4- 공백0, 별9, 개행
//  *******        3- 공백1, 별7, 개행
//   *****         2- 공백2, 별5, 개행
//    ***           1- 공백 3, 별3, 개행
//     *            0- 공백 4, 별1, 개행

//line:0~n-1
//공백 = n-line-1
//별 = 2*line +1
//개행=1
//line:n-2 ~ 0
//공백 = n-line-1
//별 = 2*line +1
//개행=1

#include <stdio.h>
int main(void)
{
    int n;
    int line, space, star;

    printf("정수:");
    scanf_s("%d", &n);//입력
    for (line = 0; line < n; line++)//line: 0~n-1
    {
        for (space = 0; space <(n - line-1); space++)//공백 n-line-1개
        {
            putchar(' ');
        }
        for (star = 0; star < (2 * line + 1); star++)//별 2*line +1개
        {
            putchar('*');
        }
        putchar('\n');//개행
    }
    for (line = n - 2; line >= 0; line--)//line:n-2 ~ 0
    {
        for (space = 0; space < (n - line-1); space++)//공백 n-line-1개
        {
            putchar(' ');
        }
        for (star = 0; star < (2 * line + 1); star++)//별 2*line +1개
        {
            putchar('*');
        }
        putchar('\n');//개행
    }
    return 0;
}