[C언어 소스] 산봉우리 출력
알고리즘
n:←산의 높이 입력
반복(line:1→2n)
조건(line<=n
반복(space:1→4n-1-line)
공백 출력
반복(star:1→2line-1)
'*' 출력
개행
아니면
반복(space:1→2n-line))
공백 출력
반복(start:1→2(line-n))
'*' 출력
반복(space:1→2(2n-line))
공백 출력
반복(star:1→(2n-line-1))
'*' 출력
반복(space:1→2(2n-line))
공백 출력
반복(start:1→2(line-n))
'*' 출력
개행
소스코드
//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;
}
'언어 자료구조 알고리즘 > C언어 예제' 카테고리의 다른 글
[C언어 소스] 문자열 비교 함수 만들기 (0) | 2016.04.03 |
---|---|
[C언어 소스] 문자열 길이 계산 함수 만들기 (0) | 2016.04.03 |
[C언어 소스] 1월 1일 요일 입력받아 달력 출력 (2) | 2016.04.03 |
[C언어 소스] 년도와 일수 입력받아 시각 출력 (0) | 2016.04.03 |
[C언어 소스] 속이 빈 삼각형 출력 (0) | 2016.04.03 |
[C언어 소스] 다이아몬드 출력 (0) | 2016.04.03 |
[C언어 소스] 역삼각형 출력 (0) | 2016.04.03 |
[C언어 소스] 삼각형 출력 - 반복문 연습 (0) | 2016.04.03 |
[C언어 소스] 정사각형 출력 - 반복문 연습 (0) | 2016.04.03 |
파서트리 (0) | 2009.08.19 |