好吧,我对c ++很新,我试图让随机数生成器工作.一般的想法是每次循环调用随机生成器并将随机数放入数组.它基本上有效,唯一的问题是数量不是随机的.每次打印出来的时间都是-842150451,这是一个问题.
int main() { int *array; int size; cout << "Enter size of array: "; cin >> size; array = new int[size]; for (int x = 0; x < size; x++) { srand ( time(NULL) ); int randomNumber; randomNumber = rand() % 10000 + 1; randomNumber >> array[x];
它是更大的排序算法的一部分,所以我不打扰复制整个事情,因为这是问题的一部分.
srand
在循环之前调用.它根据当前时间初始化生成器 - 如果循环足够快,您将在每次迭代中使用相同的种子初始化它,因此没有真正的随机性.一次初始化就足够了.
@ ThomasPadron-McCarthy在你的问题的一条评论中指出了另一个问题:你正在尝试使用这个值进入数组
randomNumber >> array[x];
如果你没有重载那个操作符,那么它是一个移位操作,它将改变随机数,但不会将它存储到数组中.用它来存储它:
array[x] = randomNumber;