티스토리 뷰

반응형

 

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void get_dice_face();
 
int main(void)
{
    int i = 0;
 
    srand((unsigned)time(NULL));
 
    for (i = 0; i < 100; i++)
        get_dice_face();
    return 0;
}
 
void get_dice_face()
{
    static int count1, count2, count3, count4, count5, count6, all_count;
    int result;
 
    result = rand() % 6 + 1;
    all_count += 1;
 
    switch (result)
    {
    case 1:
        count1 += 1;
        break;
    case 2:
        count2 += 1;
        break;
    case 3:
        count3 += 1;
        break;
    case 4:
        count4 += 1;
        break;
    case 5:
        count5 += 1;
        break;
    case 6:
        count6 += 1;
        break;
    }
    
    if (all_count == 100)
    {
        printf("1 -> %d\n", count1);
        printf("2 -> %d\n", count2);
        printf("3 -> %d\n", count3);
        printf("4 -> %d\n", count4);
        printf("5 -> %d\n", count5);
        printf("6 -> %d\n", count6);
    }
}
 
cs

 

 

 

  - 설명  

line 6-15 :

main 함수에서 반복 횟수를 

0으로 초기화 시키고,

srand 시드를 활용하여

프로그램이 재실행 될 때마다

다른 난수를 생성하도록 한다.

 

또한, for 문을 활용하여

get_dice_face() 함수를

100번 호출하도록 한다.

 

line 17-19 :

get_dice_face() 함수에는

각 면이 나온 횟수의 변수인

count1 ~ 6 변수와

함수 호출 횟수인 all_count 변수를

정적 지역 변수로 지정하여

재호출되어도 초기화되지 않도록 했다.

 

line 22-23 :

난수를 1부터 6까지 생성하여

result 변수에 저장하고,

호출될 때마다 all_count를 1 증가 시킨다.

 

line 25-45 :

switch 문의 조건에

result값이 1~6일 때를 넣어

각 면에 맞는 count를 증가시킨다.

 

line 47-56 :

all_count (함수 호출 횟수)가 100이 되면

각 면이 나온 횟수를 출력한다.

 

 

 

  - 결과 

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요