되는대로 살자

[C언어 기출문제&풀이] 다이아몬드 출력 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 다이아몬드 출력

malu 2010. 11. 2. 18:27
프로그램 명: diamond
제한시간: 1 초

수 하나를 입력으로 받아 다이아몬드 모양으로 출력하는 프로그램이다.

입력

2 이상 30 이하의 자연수가 입력으로 주어진다.

출력

출력 예의 형식으로 출력한다.

입출력 예

입력

2

출력

 *
***
 *

입력

3

출력

  *
 ***
*****
 ***
  *
풀이 : 먼저 중간 줄 까지는 i가 입력값/2 부터 0까지 1씩 감소하는 반복문을 만든다. 그리고 별의 수=a라 하고 
a=1로 초기값을 준 다음 각 줄이 넘어갈 때마다 2씩 증가시킨다. 
그리고 중간 다음줄 부터는 i가 1부터 입력값/2까지 변하는 반복문을 만든 다음 각 줄이 넘어갈때 마다
2씩 감소시킨다. (i=임시변수)
소스코드 
01#include<stdio.h>
02int main()
03{
04        int jum,i,j,su,temp=1,cnt=1;
05        scanf("%d",&su);
06        jum=su/2;
07        for(i=1;i<=su/2+1;i++)
08        {
09                for(j=1;j<=jum;j++)
10                        printf(" ");
11                for(j=1;j<=cnt/2+1;j++)
12                        printf("%d",j);
13                for(j=cnt/2;j>=1;j--)
14                        printf("%d",j);
15                cnt=cnt+2;
16                jum--;
17                printf("\n");
18        }
19        cnt=cnt-2;
20        jum=jum+2;
21        for(i=1;i<=su/2;i++)
22        {
23                cnt=cnt-2;
24                for(j=1;j<=jum;j++)
25                        printf(" ");
26                for(j=1;j<=cnt/2+1;j++)
27                        printf("%d",j);
28                for(j=cnt/2;j>=1;j--)
29                        printf("%d",j);
30                jum++;
31                printf("\n");
32        }
33