如何产生1-100之间的随机数阿?
如何产生1-100之间的随机数阿?
每次运行的时候产生的值都要不一样。。。
[解决办法]
#include <stdio.h>
#include <iostream>
#include <time.h>
using namespace std;
#define MAX 100
int main(int argc, char* argv[])
{
srand( (unsigned)time( NULL ) ); //srand()函数产生一个以当前时间开始的随机种子
for (int i=0;i <10;i++)
cout < <rand()%MAX < <endl; //MAX为最大值,其随机域为0~MAX-1
return 0;
}
[解决办法]
// ============================================================================
// return a random x that nMin <= x && x < = nMax
// ============================================================================
int GetRandom(int nMin, int nMax)
{
if (nMin > nMax) {
nMax ^= nMin;
nMin ^= nMax;
nMax ^= nMin;
}
//~~~~~~~~~~~~~~~~~~~~~~~~
int range = nMax - nMin + 1;
//~~~~~~~~~~~~~~~~~~~~~~~~
return nMin + rand() % range;
}
要每次调用不一样,主函数里面用时间做随机数种子
srand(unsigned(time(0)));
GetRandom(1,100); 就好~