반응형
주사위를 던져서 각각의 면이 몇 번 나왔는지를 출력하는 프로그램을 작성하라. 주사위의 면은 난수를 이용하여 생성한다. 주사위를 던지는 함수 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 |
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글
조화 수열(harmonic series) (0) | 2016.08.04 |
---|---|
정적 지역 변수 초기화 (0) | 2016.08.04 |
연산 횟수를 세는 계산기 (0) | 2016.08.03 |
메뉴 시스템 만들기 (0) | 2016.07.29 |
부동 소수점 수 일치 판별 (0) | 2016.07.29 |