手把手教你使用rand函数实现猜数字游戏

简介: 笔记

rand()函数


1.png

rand 函数返回范围为 0 到 RAND_MAX的伪随机整数。在调用 rand 之前,使用 srand 函数为伪随机数生成器设定种子。 ran函数的头文件是<stdlib.h>


RAND_MAX

我们将RAND_MAX,复制到VS编译器中,选中右击,选择转到定义,我们可以查看RAND_MAX的范围,在这里我们可以看到RAND_MAX为0x7fff,转换为10进制32767

2.png


srand()函数


3.png

srand()函数头文件是<stdlib.h> ,调用的类型是整数,srand函数里面是数字多少,rand函数就会从数字多少开始产生随机值,随机值范围是sradn函数里面的数字到32767


调用rand和srand函数


4.png

我们第一次调用后结果是365,在重新调用一次,结果还是365

5.png

当我们把srand()里面的数字换了之后,再次调用我们发现这个随机值会变

6.png

当但随机值等于200,我们第二次调用时,产生的随机值还是691

7.png

因此可见如果,srand()里面的值不变每次调用的结果都一样,为了让每次产生的随机值不一样,我们可利用time函数,让srand()里面的值随时间的变化而变化


time()函数


8.png

time()函数的头文件时<time.h>,返回类型时time_t,time_t也是一种整形类型

9.png

我们将time()函数的返回值,放到srand()函数中,这样srand()函数中的值就随时在变化,由于srand()函数中的值是整型,而time的返回值是整型。因此我们这样将time()函数放到srand()函数中

10.png

接下来,我们测试产生的随机值,我们要求产生1-100的随机值

12.png11.png

13.png






我们发现这三次测试结果都不相同


用srand函数实现猜数字游戏

14.png


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
  printf("*************************\n");
  printf("******1.play*************\n");
  printf("******0.exit*************\n");
  printf("*************************\n");
}
void game()
{
  int ret = rand() % 100 + 1;
  while (1)
  {
  printf("请输入一个数字:\n");
  int guess;
相关文章
|
存储 BI
数据结构数组栈的实现
数据结构数组栈的实现
|
iOS开发 开发者
解决 Objective-C 中的 EXC_CRASH (SIGABRT) 错误
在Objective-C开发中,EXC_CRASH (SIGABRT) 是常见的运行时错误。面对此类问题,首先要解析Xcode提供的详细错误信息以定位问题所在。随后,仔细审查相关代码,特别是涉及空对象处理的部分,并考虑增加条件判断。利用断言如`NSAssert`可以帮助检测潜在错误,提前中断程序避免崩溃。此外,采用异常处理机制如`@try`/`@catch`可在异常发生时优雅地捕获并处理错误,避免程序终止。结合使用断点、Xcode调试器及打印调试信息等技术,开发者能够更有效地诊断并修复这类错误。
866 1
|
8月前
|
自然语言处理 算法 安全
境内深度合成服务算法备案通过名单分析报告
本报告基于《境内深度合成服务算法备案通过名单》,分析了2023年6月至2025年3月公布的10批备案数据,涵盖属地分布、行业应用及产品形式等多个维度。报告显示,深度合成算法主要集中于经济发达地区,如北京、广东、上海等地,涉及教育、医疗、金融、娱乐等多行业。未来趋势显示技术将向多模态融合、行业定制化和安全合规方向发展。建议企业加强技术研发、拓展应用场景、关注政策动态,以在深度合成领域抢占先机。此分析旨在为企业提供参考,助力把握技术发展机遇。
境内深度合成服务算法备案通过名单分析报告
|
网络协议 应用服务中间件 API
CentOS7.5 手动部署Ceph RGW
目    录 1     设备列表... 1 2     Ceph RGW 部署... 1 2.1     使用civetweb配置... 2 2.2     使用nginx配置... 5   本文主要记录一下手动部署rgw的过程,环境是使用的之前手动部署的ceph环境,之前的环境部署可以参考以下链接https://yq.aliyun.com/articles/604372   Ceph RGW(即RADOS Gateway)是Ceph对象存储网关服务,是基于LIBRADOS接口封装实现的FastCGI服务,对外提供存储和管理对象数据的Restful API。
8049 0
|
弹性计算 缓存 数据库
2024年阿里云2核4G服务器一年多少钱?一年165元
2024年阿里云2核4G服务器一年多少钱?一年165元,轻量应用服务器,自带4M公网带宽
|
存储 安全 数据安全/隐私保护
EV代码签名证书
EV代码签名证书
278 0
|
存储 NoSQL 网络协议
【mongo 系列】mongodb 学习八,MongoDB 主从集群 1
说到集群,生产环境中很多服务都会进行集群部署,那么 mongodb 的集群都有哪些知识点需要掌握呢
246 0
Java 最常见的面试题: jsp 有哪些内置对象?作用分别是什么?
Java 最常见的面试题: jsp 有哪些内置对象?作用分别是什么?
|
负载均衡 测试技术
相亲app开发为社交赋能,关于性能测试的那些事
相亲app开发为社交赋能,关于性能测试的那些事
|
机器学习/深度学习 存储 人工智能
从万物互联到万物皆数-数字化转型中数据驱动的核心逻辑
  在前面谈企业数字化转型技术应用趋势的时候,我更多的是从万物互联和泛终端化,技术平台和云原生,IT组织架构重塑,生态构建等方面展开描述。而没有对一个关键内容的数据展开进一步的阐述。   对于企业数字化,在前面多次强调了三大核心内容,即连接,数据,智能。   其内在的逻辑是首先通过连接解决了基本的业务协同问题,其次是连接产生数据,数据反哺业务,同时进一步实现数据驱动运营;最后才是进一步的基于数据来实现智能化场景应用和人工智能等高阶场景。   在最新的十四五规划和国资委下发的企业数字化转型的专题报告里面,都多次提到了大数据,数据中台,包括数据治理和元数据管理。数据作为企业的核心资产越来越受
660 0