C随机数生成

目录

一,rand函数

二,srand函数

三,time函数

四、生成范围随机数公式


在编写猜数字,投色子等小程序时,需要使用到一定范围内的随机数,此时我们需要使用到一些函数帮助实现此类功能。

一,rand函数

#include<stdlib.h>
int rand( void );

 rand函数根据种子生成随机值,但是每次程序运行种子是固定的,如果只使用它实际上返回的是伪随机整数。


想要返回真随机整数。在调用rand之前,要先使用srand函数为伪随机数发生器设定种子

二,srand函数

#include<stdlib.h>
void srand( unsigned int seed );

通过函数原型可以发现,srand需要一个无符号整形的一个参数,根据种子参数为rand提供种子,但如果srand每次传入的种子相同的话,那么rand函数生成的随机值也是相同的,这样生成的数仍然不是完全随机的。

这时我们仍需要一个提供随机种子的函数,通常使用时间作为参数生成的种子,因为每次运行程序的时间不相同,所以生成的随机数也不相同。

三,time函数

#include<time.h>
time_t time(time_t *timer);

 对于time函数来说,如果参数是空指针,直接返回当前时间。如果参数不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。

我们只需要给time函数传空指针NULL,他会给我们返回当前时间的时间戳。这样的话就可以实现时间种子生成随机数。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	srand((unsigned int)time(NULL));
	int ret = rand();
	printf("%d\n", ret);
	return 0;
}

四、生成范围随机数公式

通过公式实现生成一定范围内的随机数

srand((unsigned int)time(NULL));
int ret1 = rand() % 10 + 1;//生成1~10的随机数
int ret2 = rand() % 100 + 1;//生成1~100的随机数
int ret3 = rand() % 34 + 66;//生成66~99的随机数
int ret4 = rand() % (n - m + 1) + m;//生成m~n的随机数
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vⅤ_Leon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值