# shlomi-fish-homepage / t2 / MathVentures / calc_dice_average.c

 ``` 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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111``` ```/* calc_dice_average.c - a program that calculates the average of a roll of dice in which a certain number of the minimal dice values are omitted. Programmed by Shlomi Fish, 1997 Part of Math-Ventures' article: "Combinatorics and the Art of Dungeons and Dragons". */ #include #include #include #define MAX_DICE 100 /* A function that compares two integers. Used by qsort() */ int int_compare(const void * a, const void * b) { if (*(const int *)a > *(const int *)b) return 1; else if (*(const int *)a < *(const int *)b) return -1; else return 0; } int main() { int a, b; unsigned dice[MAX_DICE]; unsigned sorted_dice[MAX_DICE]; unsigned num_dice, max_die_value, dice_to_remove; unsigned long grand_total; /* Input the values of the parameters */ printf("Please enter the number of sides that every die has:\n"); scanf("%u", &max_die_value); printf("Please enter the number of dice that are thrown:\n"); scanf("%u", &num_dice); printf("Please enter the number of dice with minimal values" " to be removed from a throw total:\n"); scanf("%u", &dice_to_remove); /* Some verifications */ if (num_dice > MAX_DICE) { fprintf(stderr, "Sorry, but the number of dice cannot exceed %u!\n", MAX_DICE); return -1; } if (dice_to_remove > num_dice) { fprintf(stderr, "Sorry, but the number of dice to remove cannot be greater that the number of dice thrown!\n"); return -1; } /* Initiliaze the dice to the first permutation */ for(a=0;a
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.