editing loop

hey , im using this following program to generate a random number between 0 and 0.99 , it only gives me one output at this time but i want 1000 ouputs , how do i modify this loop.


#include <iostream>
#include <ctime>
#include <fstream>
using namespace std;

//
// Generate a random number between 0 and 1
// return a uniform number in [0,1].
double unifRand()
{
return rand() / double(RAND_MAX);
}
//
// Generate a random number in a real interval.
// param a one end point of the interval
// param b the other end of the interval
// return a inform rand numberin [a,b].
double unifRand(double a, double b)
{
return (b-a)*unifRand() + a;
}
//
// Generate a random integer between 1 and a given value.
// param n the largest value
// return a uniform random value in [1,...,n]
long unifRand(long n)
{

if (n < 0) n = -n;
if (n==0) return 0;
/* There is a slight error in that this code can produce a return value of n+1
**
** return long(unifRand()*n) + 1;
*/
//Fixed code
long guard = (long) (unifRand() * n) +1;
return (guard > n)? n : guard;
}
//
// Reset the random number generator with the system clock.
void seed()
{
srand(time(0));
}


int main()
{
ofstream myfile;
myfile.open ("example.txt");
seed();
for (int i = 0; i < 20; ++i)
{
myfile << unifRand() << endl;
myfile.close();
}
return 0;
}
1) put myfile.close(); outside of the for loop.
2) Change the 20 to 1000.
3) Please quit cross-posting http://www.cplusplus.com/forum/beginner/85223/
Last edited on
4) Please use code tags for code
Topic archived. No new replies allowed.