关于在c语言中的随机数

前言

萌新发文,希望能够帮到大家

随机数有什么用?

在我们的各种程序中常常需要随机数生成的值,就比如之前三子棋游戏中,电脑下棋的位置是可以使用随机数生成的。在之后我会发布一个扫雷的讲解,里面的雷的布置,也是需要通过随机数来获取坐标的。

生成随机数需要使用的函数

rand()

在这个过程中,我们需要使用rand()函数.
使用代码如下

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{

	for (int n = 0; n < 10; n++)
	{
		int i = rand();

		printf("%d\n", i);
	}

	return 0;
}

此时我们运行代码,这里我得到一个结果
请添加图片描述
当我再次运行这个代码的时候,我获得了同样的结果
请添加图片描述
所以,我们通过观察这两个图片可以发现,这个东西表面上是随机数,实际上只是一个伪随机
此时,我们引入另一个函数 srand()

srand()

我们使用srand()函数,参数需要一个整形参数

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	srand(100);
	for (int n = 0; n < 10; n++)
	{
		int i = rand();

		printf("%d\n", i);
	}

	return 0;
}

运行几次之后发现,得到的值还是一个固定的的值,此时,我们引入一个概念叫做时间戳

时间戳

在电脑上唯一随时改变的数字就是时间了。
所以,我们通过时间来作为srand()的参数的话,就能得到真正的随机数了
为了使用它,我们需要准备两个头文件
time.h
stdlib.h
同时,由于srand()需要一个整形参量,而time返回的是time_t类型的数据,所以我们使用强制类型转换:
unsigned int

代码

具体代码如下

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	srand((unsigned int)time(NULL));
	for (int n = 0; n < 10; n++)//为了让大家看得更真切,所以写了for循环,多打印了一些
	{
		int i = rand();

		printf("%d\n", i);
	}

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值