C语言随机生成数字

一、rand函数

它会生成一个伪随机数,范围在0~RAND_MAX(32767)。

注意:使用rand函数时要包含头文件:stdlib.h

现在我们试一试生成五个随机数:

这是第一次生成的五个随机数

这是第二次生成的随机数:

这时我们就会发现这两次生成的随机数都是一样的,这其实是rand函数生成的随机数是伪随机数,它并不是真正的随机数,真正的随机数是无法预测下一个值是多少的,而rand函数是对一个叫“种子”的基准值进行运算生成的随机数,之所以前面生成的两次随机数都是一样的,那是因为rand函数生成随机数种子的默认值为1,如果要让随机数每一次都是不同的,那么就要让种子的值不断变化。为了解决这个问题,这时就可以使用srand函数

二、srand函数

我们先来试一试:

第一次:

第二次:

这时我们就会发现随着srand()括号里面的值的变化,生成的随机数的值也是不断变化的。

问题来了,这个种子不可能人力一个一个的去改吧,这时就有一个新的概念--时间戳,这时为了使用这个时间戳,就有了新的函数--time

三、time函数

在程序中我们⼀般是使⽤程序运⾏的时间作为种⼦的,因为时间时刻在发⽣变化的。

在C语⾔中有⼀个函数叫time,就可以获得这个时间,time函数原型如下:

time函数会返回当前的⽇历时间,其实返回的是1970年1⽉1⽇0时0分0秒到现在程序运⾏时间之间的 差值,单位是秒。返回的类型是time_t类型的,time_t类型本质上其实就是32位或者64位的整型类 型。

time函数的参数timer如果是⾮NULL的指针的话,函数也会将这个返回的差值放在timer指向的内存 中带回去。

如果timerNULL,就只返回这个时间的差值。time函数返回的这个时间差也被叫做:时间戳。

注意:time函数的时候需要包含头⽂件:time.h

上面两种写法都可以,在上面,我的rand()%100的意思是使这个随机产生的数控制在0-99之间(下面会讲到)。

还有srand函数是不需要频繁调用的,一次运行的程序中调用⼀次就够了。

四、设置随机数的范围

如果我们要生成0~99之间的随机数,方法如下:

如果要生成1~100之间的随机数,方法如下:

如果要生成100~200的随机数,方法如下:

所以如果要生成a~b的随机数,方法如下:

接下来我们实践一下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值