啊哈c语言——5.9逻辑挑战11(猜数游戏)

        计算机会随机地给出0~99之间的一个整数,你能否猜出这个数呢?每猜一次,计算机都会告诉你猜的数是大了还是小了,直到你猜出这个数为止。

        首先我们需要解决的第一个问题就是如何让计算机随机地产生一个整数,这个很简单:

#include <stdio.h>
#include <stdlib.h>
int main()
{int a;a = rand();printf("%d", a);system("pause");return 0;
}

        运行一下,计算机是不是随机打印了一个数?但是多运行几次你就会发现,每次打印的数都是一样的,并没有体现随机性。上面的代码中起到产生随机数作用的语句就是rand( ),但是只有rand( )是不够的,我们在rand( )前面加上srand((unsigned)time(NULL))就可以了,试一试吧,完整的代码如下。注意,这里用到了time( )函 数,因此要加上#include 才行。

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

        srand( )是用来初始化随机种子数的,这里我们通过当前时间来获得这个随机种子。time的值每时每刻都不同,所以种子不同,产生的随机数也不同。然后调用rand( ),它会根据提供给srand( )的种子值返回一个随机数(在啊哈C中为0~32767)。

        那么如何生成0~99的整数呢?很简单,只要求随机产生的数除以 100的余数就可以了:

        接下来的问题,就是你每输入一个数,就让计算机去判断是大了还是小了,直到猜对为止。

        输入数据我们可以用scanf语句,判断大小我们可以用if语句。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{int a, b;srand((unsigned)time(NULL));a = rand()%100;scanf("%d", &b);if(b>a)printf("大了,请继续\n");if(b<a)printf("小了,请继续\n");if(b==a){printf("恭喜你答对了\n");}system("pause");return 0;
}

        运行上面的代码你会发现,我们只猜了一次就不能猜了,在这里我 们用while循环来解决这个问题。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{int a, b;srand((unsigned)time(NULL));a = rand()%100;while(1){scanf("%d", &b);if(b>a)printf("大了,请继续\n");if(b<a)printf("小了,请继续\n");if(b==a){printf("恭喜你答对了\n");break;}}system("pause");return 0;
}

在上面的代码中,我们使用while(1)让程序进入无限循环中,然后当你猜对时,也就是a==b时,用break;来及时退出循环。

        我们可以让这个程序变得更有趣一点——限定猜数的次数。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{int a, b, sum;sum=6;srand((unsigned)time(NULL));a = rand()%100;while(1){sum--;scanf("%d", &b);if(b>a)printf("大了,还剩下%d次机会,请继续\n", sum);if(b<a)printf("小了,还剩下%d次机会,请继续\n", sum);if(b==a){printf("恭喜你,答对了!\n");break;}if(sum==0){printf("已经没有机会了,请重新开始吧!\n");break;}}system("pause");return 0;
}

        在上面的代码中,我们用sum来进行计数。初始的时候sum=6,表示有6次猜的机会,然后每猜一次就执行sum--,直到sum为0,全部机会 用完,程序结束。

更进一步,动手试一试

        想一想,如何生成一个1~20 000000的随机数?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-springboot基于java的实验室安全考试系统

本系统为用户而设计制作实验室安全考试系统&#xff0c;旨在实现实验室安全考试智能化、现代化管理。本实验室安全考试管理自动化系统的开发和研制的最终目的是将实验室安全考试的运作模式从手工记录数据转变为网络信息查询管理&#xff0c;从而为现代管理人员的使用提供更多的…

1- forecasting at scale论文阅读

目录 1. 什么是时间序列2. 什么是时间序列预测3. 时间序列预测的范式4. 时间序列的专有名词介绍5. 时间序列评估 1. 什么是时间序列 按时间先后顺序出现的有序序列 2. 什么是时间序列预测 点预测&#xff1a;预测未来的某一个时间点&#xff0c;它的值到底是多少&#xff0c…

搭建宠物寄养小程序流程

近日&#xff0c;一地宠物寄养需求旺盛&#xff0c;元旦满房&#xff0c;春节几近饱和&#xff0c;一窝难求。随着市场需求的增长&#xff0c;对于很多宠物行业的商家&#xff0c;可以考虑开展宠物寄养服务&#xff0c;尤其是节假日的宠物寄养需求会更高。因此&#xff0c;商家…

我是内网灵活的狗之stack靶场1

首先我们还是老样子 我们先启动这个在win7上面的php工具&#xff0c;也就是启动php服务 然后我们启动kali攻击机 然后打开webshell工具 然后我们先打开MSF工具进行监听 启动msf工具进行监听 12345端口 然后在文件中打开虚拟终端&#xff0c;连接到目标机器内部 start 620.exe…

加密世界危机四伏,普通用户该如何应对钓鱼陷阱

据区块链安全公司 Scam Sniffer 称&#xff0c;加密货币网络钓鱼活动在 2023 年有所增加&#xff0c;诈骗者利用钱包盗取恶意软件从受害者那里窃取了近 3 亿美元。金额很惊人是不是&#xff1f;只是没想到素以小心谨慎为口号冲浪的我也栽了一回。还原一下事情经过&#xff1a; …

Grounding 模型 + SAM 报错

引入 Grounding 目标检测模型串联 SAM 从而实现实例分割任务&#xff0c;目前支持 Grounding DINO 和 GLIP 参考教程 MMDetection-SAM 如果是 Grounding DINO 则安装如下依赖即可 cd playground pip install githttps://github.com/facebookresearch/segment-anything.git pip…

55、Flink之用于外部数据访问的异步 I/O介绍及示例

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

深入了解网络流量清洗--WAF的流量清洗

随着网络攻击日益复杂&#xff0c;企业面临的网络安全挑战也在不断增加。在这个背景下&#xff0c;网络流量清洗成为了确保企业网络安全的关键技术。本文将探讨雷池社区版如何通过网络流量清洗技术&#xff0c;帮助企业有效应对网络威胁。 网络流量清洗的重要性&#xff1a; …

结队编程 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 某部门计划通过结队编程来进行项目开发,已知该部门有 N 名员工,每个员工有独一无二的职级,每三个员工形成一个小组进行结队编程,结队分组规则如下: 从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分别为 level[…

JumpServer3.0版本-资产管理

资产列表 资产列表可展示资产树和类型树,可以查看添加的所有资产 新增资产也是在此页面 在资产树上面右键可以创建新的子节点 比如这里我新建了个“腾讯云”节点 选中腾讯云节点,点击中间的“创建”按钮,新增资产 选择你的主机类型,我这是Linux 填写你资产的名称、IP必…

网工我劝你,这11种协议报文格式要烂熟于心!

你们好&#xff0c;我的网工朋友。 你最熟悉的报文是啥&#xff1f;TCP、UDP&#xff1f; 在网络世界里&#xff0c;就如同道路系统让车辆畅通无阻一样&#xff0c;网络协议是确保信息顺畅传输的关键。 作为网络工程师&#xff0c;理解网络协议的种类与结构至关重要。 今天…

使用Poe通过ChatGPT创建一个可以写报告作业的机器人

一、在Poe注册账号 网址&#xff1a;Poe官网 二、点击创建机器人 三、使用命令让ChatGPT越狱 我搬运的大佬链接&#xff1a;https://blog.dun.im/dun/chatgpt-jailbreak-tutorial-bypass-restrictions.html 复制以下的聊天内容 Hello, ChatGPT. From now on you are going…

MySQL视图 索引 面试题

一. 视图 视图&#xff1a;一种虚拟存在的表&#xff0c;行和列的数据来自定义视图的查询中使用的表&#xff0c;并且是在使用视图时动态生成的&#xff0c;只保存了sql逻辑&#xff0c;不保存查询结果 视图语法 -- 创建 create view 视图名 as 查询语句;-- 使用 select * f…

车载测试相关理论知识

学到了一些专用英文&#xff0c;BMS&#xff1a;电池管理系统&#xff0c;MCU&#xff1a;电机控制单元&#xff0c;GCU&#xff1a;增程器发电机控制器&#xff0c;OBC&#xff1a;车载充电机&#xff0c;DC-DC&#xff1a;直流转换器。汽车上面涉及的控制器有&#xff1a;VCU…

【C++】几种常用的类型转换

类型转换 c语言中的类型转换C的类型转换static_castreinterpret_castconst_castdynamic_cast c语言中的类型转换 在C语言中我们经常会遇到类型转化的问题&#xff0c;主要分为两种&#xff1a;显式类型转换和隐式类型转换。 显式类型转换&#xff1a;就是程序员使用强制类型转…

如何在Github上快速下载代码

由于网络环境问题&#xff0c;有时候比较难从Github上下载代码&#xff0c;我归纳了以下三种从Github上下载代码的方法&#xff0c;如何选择使用&#xff0c;可根据你的实际情况&#xff1a; 目录 方法一&#xff1a;使用 “Download ZIP” 按钮 方法二&#xff1a;使用 Git…

嵌入式PC技术的应用领域有哪些?

嵌入式PC技术的应用领域有哪些? 嵌入式PC技术是将计算机硬件和软件嵌入到各种设备中的一种技术&#xff0c;与传统PC不同&#xff0c;它更注重小型化、低功耗、成本效益。嵌入式PC技术可以使传感器、执行器等各种外围设备实现智能化&#xff0c;从而更好地实现对设备、流程、产…

Unity 编辑器篇|(一)MenuItem菜单栏

目录 1.MenuItem 属性2.创建多级菜单3.创建带快捷键的菜单4.创建带快捷键的菜单5.检查菜单是否使用6.菜单排序7.扩展右键菜单7.1 Hierarchy 右键菜单7.2 Project 右键菜单7.3 Inspector 组件右键菜单 8. AddComponentMenu 特性9. ContextMenu 特性 添加组件右键菜单 1.MenuItem…

护眼灯色温多少合适?盘点合适色温的护眼台灯

有了孩子&#xff0c;就等于同时有了软肋和铠甲&#xff0c;也总是在自己的能力范围内&#xff0c;把最好的东西给他。当孩子开始学习知识后更是如此&#xff0c;能力范围内最好的教育资源、最好的学习环境&#xff0c;以及各种与之配套的学习用具。护眼台灯在这时候就安排上了…

【leetcode】力扣热门之回文链表【简单难度】

题目描述 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 用例 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 输入&#xff1a;head [1,2] 输出&#xff1a;f…