读书人

怎么产生1-100之间的随机数阿

发布时间: 2012-03-18 13:55:39 作者: rapoo

如何产生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); 就好~

读书人网 >C++

热点推荐