/* File: dice3.c Print out the probabilities of rolling two six-sided dice using our random number generator. */ #include #include "genlib.h" #include "simpio.h" #include "random.h" main() { int prob[13] ; int die1, die2, sum, i, j, n ; double bar_height ; /* Initialize array to zero */ for (i=2; i<=12 ; i++) { prob[i] = 0 ; } SetRandomRange(1,6) ; SetRandomSeed() ; printf("Number of trials: ") ; n = GetInteger() ; /* Run Simulations */ for (i = 0 ; i < n ; i++) { die1 = GetRandomNumber() ; die2 = GetRandomNumber() ; sum = die1 + die2 ; prob[sum] ++ ; } /* Print out results */ for (i = 2 ; i<=12 ; i++ ) { printf("%d: %d\n", i, prob[i] ) ; } printf("\n") ; /* Print out histogram */ for ( j = 15 ; j >= 1 ; j-- ) { for ( i = 2 ; i <= 12 ; i++) { /* Scale and round the values */ bar_height = 36.0/n * prob[i] + 0.5 ; if ( bar_height >= j ) { printf(" * ") ; } else { printf(" ") ; } /* else */ } /* for (i = ... */ printf("\n") ; } /* for (j = ... */ /* label the histogram */ for ( i = 2 ; i <= 12 ; i++) { printf("%2d ", i) ; } printf("\n") ; printf("Each row = %d\n", n/36) ; }