/* Program to make randomized charitable donations. */ /* Puts N objects into 2 piles based on U(0,1) variate */ /* Written by Carey Williamson for CPSC 601.08 Feb/10 */ /* */ /* Usage: cc -o donate2 donate2.c */ /* ./donate2 < input_file > output_file */ #include #include #include #define MAX_RAND 0x7fffffff /* Optional debugging flag */ /* #define DEBUG 1 */ int main(argc, argv) int argc; char **argv; { int i, j, numpiles, numobjects, left, right; float randnum; srandom(time(0)); while( (i = scanf("%d", &numobjects)) == 1 ) { randnum = (float) random()/MAX_RAND; #ifdef DEBUG printf("Putting %d objects in 2 piles at random with %f...\n", numobjects, randnum); #endif left = randnum * (numobjects + 1); right = numobjects - left; /* Print out results */ printf("%d %d\n", left, right); } }