想请问一个关于 C++ 产生随机数的问题,代码已完成,还有一点小麻烦。
这是在网上看到的代码,我没有完全复制,但核心思想应该没有出入。这段代码以系统的时间作为srand()函数的种子,以此来产生一个随机数。只是不知道为什么每次执行时第一个随机数总是没有变化,并且永远是“上限-1”。也就是说,若在0~10之间取随机数,第一个产生的永远是9.到底为什么?望各位大侠解答。在此感谢。#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
double random(double start,double end)
{
return start+(end-start)*rand()/(RAND_MAX+1.0);
}
int main()
{
srand(unsigned(time(0)));
for(icnt=1;icnt<=10;icnt++)
{
cout<<int(random(0,10))<<endl;//在1到10之间取随机数
}
return 0;
}