문제: 주사위를 100번 던져 각각의 면이 몇 번 나왔는지 출력하는 프로그램을 만들어라
조건1: 주사위 면은 난수를 사용하여 생성한다
조건2: 주사위를 던지는 함수 get_dice_face()함수를 만들어라
조건3: 조건2에서 각각의 면이 나올때마다 그 횟수를 정적 지역 변수를 이용하여 기억하게 하기.
조건4: 100회를 호출하면 각 면의 횟수를 다음 실행예제 1, 실행예제 2와 같이 출력하기.
답안:
#include <stdio.h>
#include <time.h>
void get_dice_face(int);
void main() {
register int i; //반복문의 속도를 올리기 위하여 레지스터 변수 사용
srand((unsigned)time(NULL)); //시간함수를 이용하여 rand()의 값이 계속 다르게 추출함
for (i = 1; i <= 100; i++) {
get_dice_face(0);
if (i == 100) {
get_dice_face(100);
}
}
}
void get_dice_face(int count) {
static int onecount = 0, twocount = 0, threecount = 0, fourcount = 0, fivecount = 0, sixcount = 0;
int num = (rand() % 6) + 1;
if (count == 100) { //주사위를 100번 던진후 각 면의 횟수를 출력한다.
printf("1번이 나온 횟수는:%d\n", onecount);
printf("2번이 나온 횟수는:%d\n", twocount);
printf("3번이 나온 횟수는:%d\n", threecount);
printf("4번이 나온 횟수는:%d\n", fourcount);
printf("5번이 나온 횟수는:%d\n", fivecount);
printf("6번이 나온 횟수는:%d\n", sixcount);
}
else {
switch (num) {
case 1:
onecount++;
break;
case 2:
twocount++;
break;
case 3:
threecount++;
break;
case 4:
fourcount++;
break;
case 5:
fivecount++;
break;
case 6:
sixcount++;
break;
default:
printf("오류가 발생하였습니다");
break;
}
}
}
'코딩 이야기' 카테고리의 다른 글
[C언어] 순환 함수를 이용하여 1부터 N까지 더한값을 구해보자 (0) | 2021.07.28 |
---|---|
[C언어] 아이디의 비밀번호를 확인하는 함수를 만들어보자(코딩) (0) | 2021.07.28 |
[C언어] 함수를 이용한 계산기 프로그램을 작성해보자 (0) | 2021.07.27 |
[C언어] 정수 오름차순/내림차순을 구현하는 알고리즘(SORT) (0) | 2021.07.13 |
[C언어] 성적 석차 구하기 알고리즘 구현하기 (0) | 2021.07.11 |