Tuuna Computer Science

[C 언어]codeup문제 : 설탕 과자 뽑기 본문

C language

[C 언어]codeup문제 : 설탕 과자 뽑기

GuTTe 2018. 5. 2. 17:08
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <stdio.h>
/*
바둑판은 배열로 세팅해서 막대가 있는곳은 1로 한다.
시작점을 두고 바둑판과 0(가로), 1(세로)에따라 바뀐다.
가로와 세로를 조건문으로 두자  
! 배열은 0부터하므로 값을 설정해서 0부터 받게하자  
*/
int w, h;
int badook[100][100]; //배열만 선언, 입력받아서
int stick;//막대의 개수  
int stick_len; //막대의 길이  
int x;//좌표 (x=w)  
int y;//좌표 (y=h)
int direct;//방향  
int get_stick();
void start();
void pan(int w, int h);
 
int main(void)
{
    start();
    pan(w,h);
    return 0;
}
 
void pan(int w, int h) //막대기를 입력하고 다시 출력해야 된다.   
{
    puts("============================");
    //printf("%d", w);
    //printf("%d", h);
    int i, j;
    for(i=0;i<w;i++)
    {
        for(j=0;j<h;j++)
        {
            if(badook[i][j]==0)
            {
                printf("%d ",badook[i][j]);
            }
            else if(badook[i][j]== 1)
            {
                printf("%d ",badook[i][j]);
            }
        }
        printf("\n");
     }
     i = 0;
     j = 0;
}
 
void start() //시작 함수   2 0 1 1 (길이 가로 x = 1, y = 1)
{
    
    puts("생성할 바둑판의 가로와 세로의 길이를 입력하시오 : ");
    scanf("%d %d",&w, &h); //판의 크기를 설정  
    pan(w,h);
    stick=get_stick(); //막대의 개수를 반환한다.
    int i;
    int a;//배열의 길이를 늘릴 a : 세로   
    int b;//배열의 길이를 늘릴 b : 가로  
    for(i=1;i<=stick;i++)
    {
        printf("막대기의 길이, 방향, 좌표(x), 좌표(y)를 입력하시오");
        scanf("%d %d %d %d",&stick_len,&direct,&x, &y);
        x-=1;
        y-=1;
        if(x>=0 && x<=&& y>=0 && y<=h) //좌표 확인  
        {
            if(direct==1)//세로
            {//[val][]
                for(a=0;a<stick_len;a++//세로로 늘어남  
                {
 
                    badook[y][x] = 1;
                    y+=1;
                }
             }
             else if(direct==0)//가로
             {//[][val]
                 for(b=0;b<stick_len;b++//가로로 늘어남  
                 {
                     
                     badook[y][x] = 1;
                     x+=1;
                }
             }
        }
        else
        {
            puts("NO...out door!");
        }
        
            
     }
    
}
 
int get_stick()
{
    printf("놓을 막대의 개수를 입력하시오 : ");
    scanf("%d"&stick);
    if(1<=stick && 10>= stick)
    {
    return stick;
    }
    else
    {
        puts("NO NO...");
        return -1;
    }
}
cs


Comments