언어 자료구조 알고리즘/디딤돌 C언어

[정답] 디딤돌 C언어 43. 제어문 연습 - 별출력

언제나휴일 2016. 4. 30. 16:40
반응형

[정답] 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;
}


본문 42. 제어문 연습 - 별출력


더 많은 예제 보기

반응형