되는대로 살자

[C언어 기출문제&풀이] 모래 시계 출력 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 모래 시계 출력

malu 2010. 11. 2. 18:33

프로그램 명: sclock
제한시간: 1 초
홀수를 입력으로 받아 출력예의 형식으로 모래시계를 출력하려고 한다.

입력

주어지는 수는 3 이상 40 이하의 홀수이다.

출력

입출력 예

입력

5

출력

****$
 **$
  $
 $** 
$****

입력

7

출력

******$
 ****$
  **$
   $
  $**
 $****
$******
풀이 : 중간 줄 까지는i를 입력값-1부터 0까지 한번에 2씩 감소하는반복문을 만들고 각 줄마다 이 i
값 만큼 *을 출력시킨 다음 $를 출력시킨다. 다음 줄 부터는 앞의 방식을 활용하였다. 
소스코드 
01#include <stdio.h>
02  
03int main()
04{
05    int n,i,j,count1,count2,temp=0;
06    scanf("%d",&n);
07    count1=0;
08    count2=n-1;
09    for(j=0;j<n;j++)
10    {
11        for(i=0;i<count1;i++)//count1=빈칸 count2=별수 
12            printf(" ");
13        if(temp==1)
14            printf("$");
15        for(i=0;i<count2;i++)
16            printf("*");
17        if(count2==0)
18        {
19            printf("$");
20            temp++;
21        }
22        if(temp==0)
23            printf("$");
24        if(temp==1)
25        {
26            count2+=2;
27            count1--;
28        }
29        else
30        {
31            count2-=2;
32            count1++;
33        }
34        printf("\n");
35    }
36}
37          
38