上面的例子就是因为没有设置随机数种子,每次随机数种子都自动设成相同值1 ,进而导致rand()所产生的随机数值都一样。
srand()函数定义 : void srand (unsigned int seed);
通常可以利用geypid()或time(0)的返回值来当做seed
如果你用time(0)的话,要加入头文件#include<ctime>
time(0)或者time(NULL)返回的是系统的时间(从1970.1.1午夜算起),单位:秒
例子3.1:
复制代码#include <iostream>
#include <ctime>
using namespace std;
void main()
{
int a;
a=time(0);//time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒
cout<<a<<endl;
}
例子3.2:
复制代码
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time(0));
for(int i=0;i<10;i++)
{
//产生10以内的整数
cout<<rand()%10<<endl;
}
}
这样做的话,每次运行的结果就都不一样了。
注:相关教程知识阅读请移步到C++教程频道。










