본문 바로가기
C/중간고사 대비 (2022 1학기)

시험에 꼭 나오는 별찍기 문제 16번부터 23까지

by Meaning_ 2022. 4. 18.
728x90
반응형

#별찍기 16번

 

매우 쉬운문제인데 왜 얼탄거지..

 

그냥 별이랑 공백이 각 줄만큼 반복되는 거였다.

예를 들어 3번째 줄이면 별+공백이 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
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
 
 
 
 
 
 
int main() {
    int n;
    scanf("%d"&n);
    
    
    if (n == 1) {
        printf("*");
    }
    else {
        //* 이 반복 
        //1번째 줄을 *공백이 한번만 
        //2번째 줄은 *공백이 두번
        //반복 횟수 끝나면 바로 개행때리면됨
        
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <=n-i; j++) {
                
                printf(" ");
            }
            
            
            for (int j = 1; j <= i; j++) {
                printf("*");
                printf(" ");
            }
 
            printf("\n");
 
        }
        
    }
   
   
}
 
 
cs

 

 

#별찍기 17번

 

16번 17번 앞에 for문으로 공백 넣어주는게 핵심이다!

 

 

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
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
 
 
 
 
 
 
int main() {
    int n;
    scanf("%d"&n);
    
    if (n == 1) {
        printf("*");
    }
    else {
        for (int i = 1; i <= n-1; i++) {
            for (int j = 1; j <= n - i; j++) {
                //공백 넣어주기
                printf(" ");
            }
            printf("*");
            for (int j = 1; j <= 2 * (i - 1- 1; j++) {
                printf(" ");
            }
            if (2 * (i - 1- 1 > 0) {
                printf("*");
            }
            printf("\n");
        }
        for (int i = 1; i <= 2 * n - 1; i++) {
            printf("*");
        }
    }
   
}
 
 
cs

 

#별찍기 20번

 

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
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
 
 
 
 
 
 
int main() {
    int n;
    scanf("%d"&n);
    
    if (n == 1) {
        printf("*");
    }
    else {
        for (int i = 1; i <= n; i++) {
            if (i % 2 == 1) {
                for (int j = 1; j <= n; j++) {
                    printf("*");
                    printf(" ");
                }
            }
            else {
                for (int j = 1; j <= n; j++) {
                    printf(" ");
                    printf("*");
                }
            }
            printf("\n");
        }
    }
   
}
cs

 

앞에 했던걸 응용하면 된다!

 

#별찍기 21번

 

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
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
 
 
 
 
 
 
int main() {
    int n;
    scanf("%d"&n);
    
    if (n == 1) {
        printf("*");
    }
    else {
        for (int i = 1; i <= n*2; i++) {
            if (i % 2 == 1) {
                for (int j = 1; j <= n; j++) {
                    if (j % 2 == 1) {
                        printf("*");
                    }
                    else {
                        printf(" ");
                    }
                }
                printf("\n");
            }
            else {
                for (int j = 1; j <= n; j++) {
                    if (j % 2 == 1) {
                        printf(" ");
                    }
                    else {
                        printf("*");
                    }
                }
                printf("\n");
            }
        }
    }
   
}
 
 
cs

 

#별찍기 23번

 

시험시간안에 구현가능할까?

 

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
 
 
 
 
 
 
int main() {
    int n;
    scanf("%d"&n);
 
    //맨위
    for (int i = 1; i <= n; i++) {
        printf("*");
    }
    for (int i = 1; i <= 2 * (n - 1- 1; i++) {
        printf(" ");
    }
    for (int i = 1; i <= n; i++) {
        printf("*");
    }
    printf("\n");
    for (int i = 2; i <= n-1; i++) {
        for (int j = 1; j <= i-1; j++) {
            printf(" ");
 
        }
        printf("*");
        for (int j = 1; j <= n - 2; j++) {
            printf(" ");
        }
        printf("*");
        for (int j = 1; j<= 2*(n-i)-1; j++) {
            printf(" ");
 
        }
        printf("*");
        for (int i = 1; i <= n - 2; i++) {
            printf(" ");
        }
        printf("*");
        printf("\n");
        
    }
 
    //중간
    for (int i = 1; i <= n - 1; i++) {
        printf(" ");
    }
    printf("*");
    for (int i = 1; i <= n - 2; i++) {
        printf(" ");
    }
    printf("*");
    for (int i = 1; i <= n - 2; i++) {
        printf(" ");
    }
    printf("*");
    printf("\n");
 
    for (int i = n - 2; i >= 1; i--) {
        for (int j = 1; j <= i; j++) {
            printf(" ");
        }
        printf("*");
        for (int j = 1; j <= n - 2; j++) {
            printf(" ");
        }
        printf("*");
 
        for (int j = 1; j <= 2 * (n - i - 1- 1; j++) {
            printf(" ");
        }
        printf("*");
        for (int j = 1; j <= n - 2; j++) {
            printf(" ");
        }
        printf("*");
        printf("\n");
    }
   
    //맨아래
    for (int i = 1; i <= n; i++) {
        printf("*");
    }
    for (int i = 1; i <= 2 * (n - 1- 1; i++) {
        printf(" ");
    }
    for (int i = 1; i <= n; i++) {
        printf("*");
    }
}
 
 
cs
728x90
반응형

댓글