A variation of Thantos' suggestion...
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char foo(void)
{
static const char letter[] = {'E','E','E','G','G','G','M','M','M','D'};
/* http://www.eskimo.com/~scs/C-faq/q13.16.html */
return letter [ rand() / (RAND_MAX / sizeof letter + 1) ];
}
int main(void)
{
int i, E = 0, G = 0, M = 0, D = 0;
srand(time(0));
for ( i = 0; i < 1000000; ++i )
{
switch ( foo() )
{
case 'E': ++E; break;
case 'G': ++G; break;
case 'M': ++M; break;
case 'D': ++D; break;
}
}
printf("E = %.1f%%, G = %.1f%%, M = %.1f%%, D = %.1f%%\n",
(100.0 * E) / i, (100.0 * G) / i, (100.0 * M) / i, (100.0 * D) / i);
return 0;
}
/* my output
E = 30.0%, G = 30.1%, M = 29.9%, D = 10.0%
*/