U E D R , A S I H C RSS

김태진/별찍기 (rev. 1.2)

김태진/별찍기

별찍기

위키좀 써보고자 잉여로운 시간에 짰던, C시간에 배운것보다 초큼 더 어려운 별찍기를 올립니다.
.. 전 누구분과 같은 엄청난 노가다의 산물은 도전하기 꺼려지더라구요;;

별로 다이아몬드 찍기

  1. 그냥 다이아몬드는 식상했습니다. 그래서 n값을 사용자에게 받아와 그만한 크기의 다이아몬드를 찍는걸 짰습니다.

#include <stdio.h>

int main ()
{
    int i,j,n;
    scanf("%d",&n);
    n=n/2+1;
    for(i=1; i<=n; i++){
        for(j=i; j<=n; j++) printf("  ");
        for(j=1; j<=2*i-1; j++) printf("* ");
        printf("\n");// 다이아몬드 윗부분.
    }
    for(i=1; i<=n; i++){
        for(j=1; j<=i+1; j++) printf("  ");
        for(j=2*i-1; j<=2*n-3; j++) printf("* ");
        printf("\n");
    }
    

    return 0;
}
결과는
5

  • * *
  • * * * *
    • * *


9

  • * *
  • * * * *
  • * * * * * *
  • * * * * * * * *
    • * * * * * *
      • * * * *
        • * *

와 같이 가로최대갯수(세로길이)에 따릅니다.

  1. 이걸 찍고나니 이것도 식상했습니다. 그래서 n값을 받아서 거기까지의 모든 다이아몬드를 찍어내는걸 짰습니다.
.. 그러니까, 9를 하면 3 5 7 9일때의 다이아몬드를 모드 뱉어내는 겁니다.


#include <stdio.h>

int main ()
{
    int i,j,n,count; 
    scanf("%d",&count);
    n=1;

    while(n<count){
        

        if(n%2==0) {n++; continue;}
        n=n/2+2;
        for(i=1; i<=n; i++){
            for(j=i; j<=n; j++) printf("  ");
            for(j=1; j<=2*i-1; j++) printf("* ");
            printf("\n");// 다이아몬드 윗부분.
        }
        for(i=1; i<=n; i++){
            for(j=1; j<=i+1; j++) printf("  ");
            for(j=2*i-1; j<=2*n-3; j++) printf("* ");
            printf("\n");
        }
        n=(n-1)*2;
        n++;
    }
    
    return 0;
}
input을 7 로 하면
output은 아래와 같습니다.

  • * *


    • * *
  • * * * *
    • * *


      • * *
    • * * * *
  • * * * * * *
    • * * * *
      • * *


위 첫번째것과 많이 다르지 않습니다. while문 한번더 써서 n값에 도달할때까지 count를 올린것 뿐이지요.
(n값이 홀수에만 반응하도록 해야하는게 좀 짜증나긴 했습니다.)


자 그럼, 다음에는 뭘 하는게 좋을까요? 의견달아주세요

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:50
Processing time 0.0240 sec