前言

本文主要详细介绍如何在C语言中生成随机数。


一、产生随机数

我们先看一个示例:产生一个随机数并在屏幕上输出

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	srand((unsigned int)time(NULL));
	int ret=rand() % 10;
	printf("产生一个随机数:%d\n", ret);
	return 0;
}

此代码的运行结果:

在这里插入图片描述


二、具体分析

由代码可知,随机数的产生主要依赖于其中标红的两行代码,以下是对这两行代码的具体分析。
在这里插入图片描述

1.rand函数

(1)范围

在C语言中我们需要用 rand() 函数来产生随机数。
我们登录 https://www.cplusplus.com/ 网站进行查询(这里提到的网站是官方C++网站,里面详细介绍了相关语法函数等)
在这里插入图片描述
在Search中输入我们要查询的函数 rand,点击Go
以下是跳转页面,此处截取了一部分。
在这里插入图片描述
由此我们大概了解了rand()函数的相关信息,其产生随机数的范围为
0——RAND_MAX
这里的RAND_MAX 是一个值,我们可以将其拷贝至VS编译器中,选中右键转到定义:

在这里插入图片描述
我们可以看到,其值为0x7fff
在这里插入图片描述
这里的0x7fff十六进制,转化为二进制为:32767
因此:rand()函数所产生随机数的范围:0—32767

(2)对应头文件

在C语言中rand()函数所对应的头文件为:stdlib.h


2.srand函数

假使我们在编写程序的过程中只采用了 rand() 函数来进行随机数的获取,那么我们会发现一个问题:
运行程序,每次产生的随机数相等(也就是说,随机数不随机)

在这里插入图片描述
这是因为在使用 rand() 函数时需要用 srand() 函数设置随机数种子。
在这里插入图片描述

同样,我们可在该网站继续查找 srand () 函数
在这里插入图片描述

我们跳转到time () 函数

在这里插入图片描述
在使用 time() 函数时我们通常给的值 NULL(空指针)
且在使用时需要调用其所对应的头文件 time.h

因此,最终使用 srand() 函数需要:

在这里插入图片描述


3.整合

在C语言中产生随机数:

在这里插入图片描述

总结


以上就是本文的全部内容,感谢大家观看。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐