SOURCE FILE: 6.13RandInts.cpp
//
// Example 6.13. Program to print random integers in the range
// 0 - (UpperBound - 1) with seed based on time
//
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
void SeedRand(void);
int random_int(int);
const int HIGH = 100;
int i = 0;
SeedRand();
cout << "Random integers between 0 and "
<< HIGH - 1 << ", inclusively:\n";
while (i < 10)
{
cout << setw(5) << random_int(HIGH);
i++;
}
return 0;
}
//
// Function to seed the random number generator
// Pre: none
// Post: The random number generator has been seeded.
//
void SeedRand(void)
{
srand( unsigned(time((time_t *)NULL)) );
}
//
// Function to generate a random integer between
// 0 and UpperBound - 1
// Pre: UpperBound is a positive integer. The generator is seeded.
// Post: A random integer between 0 and UpperBound - 1
// has been returned.
//
int random_int(int UpperBound)
{
double random_0_1; // random number between 0 and 1
random_0_1 = rand() / (double(RAND_MAX) + 1);
return int(UpperBound * random_0_1);
}