// 正确姿势示范
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int get();
int main()
{
srand(time(NULL));
for (int i = 0; i < 10; i++)
{
int temp = get();
printf("%d\n", temp);
}
return 0;
}
int get()
{
return rand() % 16;
}
错误写法1: 在每次获取随机数时候都进行播种
int get()
{
srand(time(NULL));
return rand() % 16;
}
这样写的话我们会发现,在获取随机数的时候,随机数都是一样的。
这是因为程序在一秒内获取了多次随机数,并且每次获取的都是时间种子产生的第一个随机数
错误写法2:获取随机数前不设置时间种子,即通篇没有 srand(time(NULL))
这样写的话我们会发现,每次运行程序,我们获取的随机数都是一样的。
这是因为如果我们不人为的设定时间种子,它会使用开机时候自带的种子,而后续每次获取随机数都是用开机自带的种子,种子一样,获取的随机数自然也就是一样的。