[정답] 43. 제어문 연습 - 별출력
1. 다음처럼 입력한 정수 높이의 삼각형을 출력하는 프로그램을 작성하시오.
답:
//삼각형 출력
//입력
//
5
- n
//출력
//
* 1- 공백 4, 별1, 개행
//
*** 2- 공백 3, 별3, 개행
//
***** 3- 공백2, 별5, 개행
// ******* 4-
공백1, 별7, 개행
// ********* 5- 공백0, 별9, 개행
//공백 = n-line
//별 = 2*line -1
//개행=1
#include <stdio.h>
int main(void)
{
int n;
int line,space,star;
scanf_s("%d",&n);//입력
for(line=1;line<=n;line++)//n개 라인
{
for(space=1;space<=(n-line);space++)//공백 n-line개
{
putchar(' ');
}
for(star =1;
star<=(2*line -1); star++)//별 2*line -1개
{
putchar('*');
}
putchar('\n');//개행
}
return 0;
}
2. 다음처럼 입력한 정수의 높이에 맞게 다이아몬드를 출력하는 프로그램을 작성하시오.
답:
// 다이아몬드 출력
// 입력
//
5
- n
//출력
//
* 1- 공백 4, 별1, 개행
//
*** 2- 공백 3, 별3, 개행
//
***** 3- 공백2, 별5, 개행
// ******* 4-
공백1, 별7, 개행
// ********* 5- 공백0, 별9, 개행
// ******* 4-
공백1, 별7, 개행
//
***** 3- 공백2, 별5, 개행
//
*** 2- 공백 3, 별3, 개행
//
* 1- 공백 4, 별1, 개행
//line:1~n
//공백 = n-line
//별 = 2*line -1
//개행=1
//line:n-1 ~ 1
//공백 = n-line
//별 = 2*line -1
//개행=1
#include <stdio.h>
int main(void)
{
int n;
int line,space,star;
scanf_s("%d",&n);//입력
for(line=1;line<=n;line++)//line: 1~n
{
for(space=1;space<=(n-line);space++)//공백 n-line개
{
putchar(' ');
}
for(star =1;
star<=(2*line -1); star++)//별 2*line -1개
{
putchar('*');
}
putchar('\n');//개행
}
for(line=n-1; line>=1;line--)//line:n-1 ~ 1
{
for(space=1;space<=(n-line);space++)//공백 n-line개
{
putchar(' ');
}
for(star =1;
star<=(2*line -1); star++)//별 2*line -1개
{
putchar('*');
}
putchar('\n');//개행
}
return 0;
}
3. 다음처럼 입력한 정수의 높이에 맞게 산봉우리를 출력하는 프로그램을 작성하시오.
//산봉우리 출력
//입력
//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;
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언어 50. 인덱스 연산자 (0) | 2016.05.01 |
---|---|
[정답] 디딤돌 C언어 49. 간접 연산자 (0) | 2016.05.01 |
[정답] 디딤돌 C언어 47. 포인터 + 정수 (0) | 2016.05.01 |
[정답] 디딤돌 C언어 46. 배열 선언문 (0) | 2016.05.01 |
[정답] 디딤돌 C언어 44.정리하기(제어문) (0) | 2016.05.01 |
[정답] 41. 반복문(while, do while, for) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 40. 선택문(switch case) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 39. 조건문(if, else) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 38. 정리하기 (연산자) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 36. 증감 연산자 (0) | 2016.04.30 |