ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C로 별찍기 연습
    카테고리 없음 2017. 12. 31. 02:40

    1) 피라미드


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <stdio.h>
     
    void main()
    {
     
       int line;
       int star;
       int vp;
     
       for (line=1; line < 6; line++) {
     
     
          for (vp=0; vp <= - line; vp++) {
             printf(" ");
          }
     
          for (star=0; star < (* line) - 1; star++) {
             printf("*");
          }
     
          printf("\n");
     
       }
       
    }
    cs



    2. 다이아몬드 (5줄)



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    #include <stdio.h>
     
    void main()
    {
     
       int line = 0// 줄 갯수
       int star = 1// 별의 갯수 
       int vp = 1// 빈공간 갯수
       int branchPoint = 3// 다이아몬드 가로 반지름(증가, 감소 분기점)
     
     
       for (line = 1; line < 6; line++) {
     
          int i = 0;
          int j = 0;
     
          if (line == branchPoint + 1) { //만약 4로 넘어가면 star와 vp 변수를 초기화 시킴
     
             star = 2;
             vp = 2;
     
          }
     
          if (line <= branchPoint) { //현재 line 번호 가 반지름에 해당하는 라인 번호보다 작을 경우는 : 별은 증가하고, 빈 공간은 감소한다. (상단부)
     
     
             for (i = 0; i < 4-vp; i++) {
                printf(" ");
             }
     
             vp++;
     
          
     
             for (j = 0; j < (* star) - 1; j++) {
                printf("*");
             }
     
             star++;
          }
     
          else { //만약 line 번호가 반지름에 해당하는 라인 번호 보다 커진다면 : 빈 공간은 증가하고 별은 감소한다. (하단부)
     
             for (i = 0; i < vp; i++) {
                printf(" ");
             }
             
             vp++;
     
             for (j = 0; j < (* star) - 1; j++) {
                printf("*");
             }
             star--;
     
          }
     
          //모든 for문이 돌고 난 후 한 칸 띄우기
          printf("\n");
     
       }
     
    }
    cs



    3. 원하는 홀수 줄 입력받아서 다이아몬드 만들기


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #include <stdio.h>
     
    void main()
    {
        int line = 0// 줄 갯수
        int star = 1// 별의 갯수 
        int vp = 1// 빈공간 갯수
        
        //입력 받는 부분
        printf("******************* 신기하고 재미있는 별찍기 프로그램 *******************");
        puts("");
        printf("출력할 라인 수를 입력하세요.");
        puts("");
        scanf_s("%d"&line);
     
        //유효성 검사
        if (line % == 0) {
            printf("홀수가 아닙니다. 홀수만 입력해 주세요~");
            puts("");
            return;
        }
     
        //입력 받은 숫자 확인
        printf("출력할 라인 수 : %d", line);
        puts("");
     
     
     
        int branchPoint = (line/2)+1// 다이아몬드 가로 반지름(증가, 감소 분기점)
     
        int s;
     
        for (s = 1; s < line+1; s++) {
     
            int i = 0;
            int j = 0;
     
            if (s == branchPoint + 1) { //만약 분기점 넘어가면 star와 vp 변수를 초기화 시킴
     
                star = branchPoint-1;
                vp = branchPoint-1;
     
            }
     
            if (s <= branchPoint) { //현재 line 번호 가 반지름에 해당하는 라인 번호보다 작을 경우는 : 별은 증가하고, 빈 공간은 감소한다. (상단부)
     
     
                for (i = 0; i < (line-1- vp; i++) {
                    printf(" ");
                }
     
                vp++;
     
                for (j = 0; j < (* star) - 1; j++) {
                    printf("*");
                }
     
                star++;
                
            }
     
            else { //만약 line 번호가 반지름에 해당하는 라인 번호 보다 커진다면 : 빈 공간은 증가하고 별은 감소한다. (하단부)
     
                for (i = 0; i < vp; i++) {
                    printf(" ");
                }
     
                vp++;
     
                for (j = 0; j < (* star) - 1; j++) {
                    printf("*");
                }
                star--;
     
            }
     
            //모든 for문이 돌고 난 후 한 칸 띄우기
            printf("\n");
     
        }
     
    }
    cs



Designed by Tistory.