头文件cstdlib中包含了rand()和srand()的原型。而ctime包含了time()的原型。
rand()函数返回从0到某个数的随机数。如果将它模一个数,即rand()%x,得到的是从0到x-1的随机数。这种方法得到是伪随机数,因为在其内部的算法作为seed(种子)的数总是不变的,因此每次运行程序得到的随机数序列都相同。
x=rand()%360;
srand()函数提供设置种子的方法。
srand(10);
int x = rand();
time()函数返回的是当前时间,通常为从某个日期开始的秒数。该函数其实有一个参数,是类型为time_t变量的地址。该函数不仅把当前时间返回,而且把当前时间赋给传过来的地址所指向的time_t变量。
time_t t;
int xx = time(&t);
也可以直接通过0作为参数调用该函数,则只将当前时间返回。
int xx = time(0);
因此可以将time(0)的返回值作为srand()的参数来设置种子,从而得到随机数。因为每次运行程序的当前时间都不同,种子也就不同,得到的随机数也不同。
srand(time(0));
int x = rand();