【c语言学习笔记】随机函数rand()和srand()、time()的配合使用

使用产生随机数函数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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值