使用产生随机数函数rand()前需要先设置产生随机数的种子,即srand()函数
函数原型:int rand(void)
头文件:#include <stdlib.h>
参数:无
返回值:int类型的随机数
功能:返回一个随机数
函数原型:void srand(unsigned int seed)
头文件:#include <stdlib.h>
参数:随机数种子seed,如果seed每次设置都是一样的话,那rand产生的随机数相等
返回值:无
功能:设置rand()产生随机数时的随机种子
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 int main(void)
6 {
7 int i;
8 srand(100);
9 for(i = 0; i < 10; i++)
10 {
11 printf("%d\n", rand());
12 }
13 return 0;
14 }
无论运行几次,这里的结果都是固定的一些数值:
677741240
611911301
516687479
1039653884
807009856
115325623
1224653905
2083069270
1106860981
922406371
因为srand()如果设置都是一些固定数值参数的话,那产生的随机数都是一些固定的数值,这里可以自己去尝试一下就不难发现这些规律了,所以现在引入time()函数来产生一些随机的数值
函数原型:time_t time(time_t *t)
头文件:#include <time.h>
参数:常设置为空指针NULL
返回值:当前系统的运行时间,time_t相当于long类型
功能:获取当前系统的运行时间
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 int main(void)
6 {
7 int i;
8 time_t tim = time(NULL);
9 srand((unsigned int)tim);
10 for(i = 0; i < 10; i++)
11 {
12 printf("%d\n", rand());
13 }
14 return 0;
15 }
由于这里设置的随机种子是根据系统时间来确定的,所以每时每刻产生的随机数也是在不断变化的,这里也可以将随机数的位数进行限制,比如限制在100以内的话可以将rand()改为rand()%100。