-
32bit randon generator
Code:
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
long Random32BitNumber(unsigned long int);
int main (void)
{
unsigned long int nMax;
unsigned long int ulArraySize;
cout <<"Enter array size: ";
cin >> ulArraySize;
unsigned long int *ulArray = new unsigned long int (ulArraySize);
cout <<"Enter the maximum value: ";
cin >> nMax;
for (unsigned long int x=0; x<ulArraySize; x++)
{
ulArray[x] = Random32BitNumber(*ulArray);
cout << endl;
cout << ulArray[x];
}
delete []ulArray;
cin.ignore();
return 0;
}
long Random32BitNumber(unsigned long int lRange)
{
return (((rand() << 30) & 0x7fffffff) + (rand() << 15) + rand()) % lRange;
}
The prog crashes after displaying numbers:
i am guessing that i am using the array wrong
-
Switch the parentheses () to brackets []:
Code:
unsigned long int *ulArray = new unsigned long int (ulArraySize);
should be
Code:
unsigned long int *ulArray = new unsigned long int [ulArraySize];
And shouldn't you pass in nMax as the range:
Code:
ulArray[x] = Random32BitNumber(*ulArray);
should be
Code:
ulArray[x] = Random32BitNumber(nMax);
-
that worked,
i messed up my brackets