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);   
}