본문 바로가기
프로그램/C언어 1000제

C언어 135제] 문제와 같은 모래시계를 작성하시오.

by 건티 2022. 6. 9.
728x90

출처 : 반크_세계유산 석굴암

 

문제]

- - - - - - - - - - - - - - - - - - - - - -

( $ $ $ $ $ $ $ $ $ $ $            )

   ( $ $ $ $ $ $ $ $ $ $ $ $ $ )

      ( $ $ $ $ $ $ $ $ $ $ $ )

         ( $ $ $ $ $ $ $ $ $ )

            ( $ $ $ $ $ $ $ )

              ( $ $ $ $ $ )

                 ( $ $ $ )

                    ( $ )

                    (    )

                 (          )

              (                )

            (                    )

         (                          )

      (                               )

   (                                    )

(                                         )

- - - - - - - - - - - - - - - - - - - -

 

참고풀이]

#include <stdio.h>

char M[18][18];
void SandGlass();
void gotoxy(int x, int y);

int main()
{
   int r,c;//행열변수 

   //모래시계 초기화 
   SandGlass();

   //결과출력
   for(r=0;r<18;r++)
   {
      gotoxy(0,r);
      for(c=0;c<17;c++)
         printf("%c",M[r][c]);
   }

   return 0;
}

void gotoxy(int x, int y)
{
   COORD Pos={x,y};
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Pos);
}

void SandGlass()
{
   //1,3,5,7,9,11,13,11(모래) 
   int sand[8]={11,13,11,9,7,5,3,1};//모래시계 60개, 각행의 각열 모래수 
   int r,c;//행열변수 
   int cnt;//개수변수 
   int i,j;//인덱스 변수 

   //모래시계 모형에 빈칸 초기값 설정
   for(r=0;r<18;r++) 
   {
      for(c=0;c<17;c++)
         M[r][c]=' ';
      M[r][c]='\0';
   }

   //모래시계 모형그리기
   for(c=0;c<17;c++)
   {
      M[0][c]='-';
      M[17][c]='-';
   }
   j=-1;
   i=-1; 
   for(r=1;r<17;r++)
   {
      j++;
      if(r<9)
      {
         M[r][j]='(';
         M[r][16-j]=')';
         c=j;
         cnt=0;
         i++;
         for(c++;c<16-j;c++)
            if(cnt++<sand[i]) M[r][c]='$';
      }
      else
      {
         M[r][j+1]=')';
         M[r][16-j-1]='(';
      }
   }
}

 

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

반응형

댓글