I received some feedback on my earlier code snippet regarding how to generate unique random numbers and someone suggested I make a shorter, easier example, so here it is. This example simply generates the integers from 0 to 9 in random order without any repeats. It is basically the function GenerateRandomIntegers2 from my earlier snippet.
Generating Random Numbers Without Repeats - Part Two
/* I received some feedback on my earlier code snippet regarding generating
unique random numbers and someone suggested I make a shorter, easier
example, so here it is. This example simply generates the integers from
0 to 9 in random order without any repeats. It is basically the function
GenerateRandomIntegers2 from my earlier snippet.
srand, rand, and time appear to be part of the iostream library, but I have
included ctime and cstdlib because you need them for the srand, time, and rand
functions if you are not including iostream.
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main ()
{
srand (time (NULL));
bool picked[10];
for (int i = 0; i < 10; i++)
picked[i] = false;
int array[10];
int value;
for (int i = 0; i < 10; i++)
{
value = rand () % 10;
if (picked[value])
i--; // already picked. for-loop increments, so decrement here
else
{
array[i] = value;
picked[value] = true; // hasn't been picked yet. Assign to array,
// flag as picked.
}
}
// display
for (int i = 0; i < 10; i++)
cout << array[i] << endl;
return 0;
}
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.