C++ srand()只能调用一次,否则rand()每次返回相同值
面试的时候写一个洗牌算法,结果遇到这个问题坑死我了,幸运的是面试官也不太看得出来问题出在哪(他主攻Java),所以给了我足够时间去调试……
问题描述:
自己创作的洗牌算法:
#include <iostream>
#include <ctime>
using namespace std;
int GetRandomNumber()
{
int RandomNumber;
srand((unsigned)time(0));//time()用系统时间初始化种。为rand()生成不同的随机种子。
RandomNumber = rand() % 100 + 1;//生成1~100随机数
return RandomNumber;
}
void getRand(int* arr)
{
int i, j