반응형

주사위를 던져서 각각의 면이 몇 번 나왔는지를 출력하는 프로그램을 작성하라. 주사위의 면은 난수를 이용하여 생성한다. 주사위를 던지는 함수 get_dice_face()를 만들고 이 함수 안에서 각각의 면이 나올 때마다 그 횟수를 정적 지역 번수를 이용하여 기억하게 하라. get_dice_face() 호출 횟수가 100의 배수일 때마다 면이 나온 횟수를 출력한다.

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
#include <stdio.h>
#include <stdlib.h>
void get_dice_face(void);
int check(void);
int main(void)
{
    int k;
    int loop=0;
    while(1){
 
        get_dice_face();    
        while(1)
        {k=check();
        if(k==1)
        break;
        else if(k==2)
        {loop++;
        break;}
        else
            continue;
    }
        if(loop==1)
            break;
 
    }
    return 0;
}
void get_dice_face(void)
{
    int i,j,x;
    static int a=0;
    static int b=0;
    static int c=0;
    static int d=0;
    static int e=0;
    static int f=0;
for(i=1;i<=100;i++)
{
    for(j=1;j<=6;j++)
    {
        x= (rand()%6)+1;
        printf("%d ",x);
        if(x==1)
            a++;
        else if(x==2)
            b++;
        else if(x==3)
            c++;
        else if(x==4)
            d++;
        else if(x==5)
            e++;
        else if(x==6)
            f++;
    }
    printf("\n");
}
printf("1면:%d 2면:%d 3면:%d 4면:%d 5면:%d 6면:%d\n",a,b,c,d,e,f);
}
int check(void)
{
    char quit;
    static int z;
    while(1)
    {printf("계속하시겠습니까?(y/n)");
    scanf("%c"&quit);
    if(quit=='y')
    z=1;
    else if(quit=='n')
    z=2;
    else
        z=3;
    getchar();
    return z;
    }
}
cs






반응형

+ Recent posts