Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
signed short int numbers[47] =
{
0, 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
};
signed short int getnumber( void )
{
static signed short int high = 47;
signed short int current = rand( ) % high--;
signed short int temp = numbers[current];
numbers[current] = numbers[high];
numbers[high] = -1;
#ifdef DEBUG
{
/* If you're confused as to what's happening, enable debug.*/
int x;
for( x = 0; x < 47; x++ )
printf("%d%c", numbers[x], x%10==9?'\n':' ' );
getchar( );
}
#endif
return temp;
}
int main( void )
{
signed short int winningnumbers[6] = { -1,-1,-1,-1,-1,-1 };
srand( time( 0 ) );
winningnumbers[0] = getnumber( );
winningnumbers[1] = getnumber( );
winningnumbers[2] = getnumber( );
winningnumbers[3] = getnumber( );
winningnumbers[4] = getnumber( );
winningnumbers[5] = getnumber( );
printf("Tonight's winning numbers are...\n");
printf("%d %d %d %d %d %d\n",
winningnumbers[0], winningnumbers[1],
winningnumbers[2], winningnumbers[3],
winningnumbers[4], winningnumbers[5] );
return 0;
}
*Cackles like a demon!*