当前位置: 首页 > news >正文

E10.【C语言】练习:编写一个猜数字游戏

目录

1.规则

2.准备

3.游戏代码


1.规则

1.程序生成1-100间的随机数

2.用户猜数字

猜对了:游戏结束

猜错了:程序会告知猜大了或猜小了,继续进行游戏,直到猜对

3.游戏可以一直玩除非退出游戏

2.准备

1.框架:循环结构:do while 先循环(游戏进入主界面)后判断(进行或退出)

2.生成随机数:

#include <stdio.h>
#include <stdlib.h>
int main() 
{int random = rand() % 101; // 生成1-100之间的随机数(%101,余数是1-100)printf("%d\n", random);return 0;
}

每次运行结果都是一样的

 rand函数会返回一个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的大小是依赖编译器上实现的,但是大部分编译器上是32767,因此要配合time函数才能实现真随机数(真正的随机数的是无法预测下一个值是多少的)

rand函数是对一个叫“种子”的基准值进行运算生成的随机数,之所以前面每次运行程序产生的随机数序列是一样的,那是因为rand函数生成随机数的默认种子是1,如果要生成不同的随机数,就要让种子是变化的

-->用srand来设置种子

#include <stdio.h>
#include <stdlib.h>
int main() 
{srand(2);int random = rand() % 101; // 生成1-100之间的随机数(%101,余数是1-100)printf("%d\n", random);return 0;
}

 数字3发生变化,但是每次运行结果都是一样的

必须让srand()内的数字发生变化,才能实现真随机数

-->时间戳_百度百科,时间戳在不断变化

time 函数就可以获得这个时间(基于系统维护的内部时钟来计算的),返回值的是1970年1月1日0时0分0秒到现在程序运行时间之间的
差值,单位是秒,类型是time_t,本质上其实就是32位或者64位的整型类型(使用前写#include <time.h>)

time函数原型如下:

time_t time (time_t* timer);

这里不需要指针类型,写成time(NULL);(空指针)即可

但写成srand(time(NULL));会有问题

void srand (1 unsigned int seed);

srand的返回值是unsigned int,time的返回值是time_t,这里要强制类型转换

srand((unsigned int)time(NULL));

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() 
{// 设置随机数生成器,设置随机数的起点//设置随机种子time时间戳,将时间转化为数字,srand();填入不同数字,生成的随机数不同srand((unsigned int)time(NULL));int random = rand() % 101; // 生成1-100之间的随机数(%101,余数是1-100)printf("%d\n", random);return 0;
}

3.游戏代码

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <time.h>
void menu()//主菜单函数
{printf("**********************************************\n");printf("*******************1.PLAY********************\n");printf("*******************2.EXIT*********************\n");printf("**********************************************\n");printf("请选择:\n");
}
void game()//游戏函数
{printf("请猜数:\n");srand((unsigned int)time(NULL));int random = rand() % 101;//写成rand()%100+1也可以//printf("%d\n", random);//作弊模式:)int guess = 0;while (guess != random){scanf("%d", &guess);if (guess > random)printf("猜大了\n");else if (guess < random)printf("猜小了\n");else{printf("猜对了\n");}}
}
int main()
{int tmp = 0;do{menu();//调用菜单函数scanf("%d", &tmp);switch (tmp){case 2:break;default:{printf("输入错误,重新选择!\n");break;}case 1:{game();break;}}} while (tmp != 2);
}

补充:如果要生成a~b间的随机数(a<b)

random = rand() % (a+1);

上方生成的是0~a的随机数

略作修改:(0+a)~(b-a+a)

random=a + rand()%(b-a+1)

相关文章:

E10.【C语言】练习:编写一个猜数字游戏

目录 1.规则 2.准备 3.游戏代码 1.规则 1.程序生成1-100间的随机数 2.用户猜数字 猜对了&#xff1a;游戏结束 猜错了&#xff1a;程序会告知猜大了或猜小了&#xff0c;继续进行游戏&#xff0c;直到猜对 3.游戏可以一直玩除非退出游戏 2.准备 1.框架&#xff1a;循…...

RK3568-rk809rtc休眠唤醒

参考链接 https://www.360doc.cn/article/71858349_1119199262.html修改驱动drivers/mfd/rk808.c static void rk817_shutdown_prepare(void) { int ret; …...

【Uniapp-Vue3】pages.json页面路由globalStyle的属性

项目的全局配置在pages.json中。 一、导航栏设置 二、下拉刷新设置 下拉就可以看到设置的样式 三、上拉触底 这个页面中&#xff0c;向下滑动页面到底部就会输出“到底了” 现在将触底距离设置为500 走到半路就会输出“到底了”...

NHANES数据挖掘|特征变量对死亡率预测的研究设计与分析

书接上回&#xff0c;应各位临床或在科室的小伙伴们需求&#xff0c;除了多组学和算法开发外&#xff0c;插播关于临床护理方向的数据挖掘&#xff0c;今天分享两篇NHANES的分析文献。 1、时依中介分析 DOI&#xff1a; 10.1186/s12933-024-02191-5 整体思路 基于 NHANES 数据…...

【Sharding-JDBC学习】概述_shardingsphere-jdbc 和sharding-jdbc

1.概述 1.1.分库分表是什么 小明是一家初创电商平台的开发人员&#xff0c;他负责卖家模块的功能开发&#xff0c;其中涉及了店铺、商品的相关业务&#xff0c;设计如下 数据库&#xff1a; 通过以下SQL能够获取到商品相关的店铺信息、地理区域信息&#xff1a; SELECT p.*…...

用户登录/登出功能,当登录页面在另一域名下

需求&#xff1a; 要求为某网址增加用户登录功能。登录页面是现成的&#xff0c;但是位于另一个域名。当request 没带token &#xff0c;要求跳转此登录页面&#xff0c;用户登录后会返回token. 此时再跳回原网址。这个过程如何避免发生跨域问题&#xff1f; 最简单的方案 登…...

自动化解决方案:修复devicedisplaystatusmanager.dll丢失

在Windows操作系统中&#xff0c;DLL&#xff08;动态链接库&#xff09;文件扮演着至关重要的角色。它们为应用程序提供必要的函数和数据&#xff0c;以确保系统的平稳运行。然而&#xff0c;有时我们可能会遇到DLL文件丢失或损坏的问题&#xff0c;比如DeviceDisplayStatusMa…...

.Net8 Avalonia跨平台UI框架——<vlc:VideoView>控件播放海康监控、摄像机视频(Windows / Linux)

一、UI效果 二、新建用户控件&#xff1a;VideoViewControl.axaml 需引用&#xff1a;VideoLAN.LibVLC.Windows包 Linux平台需安装&#xff1a;VLC 和 LibVLC &#xff08;sudo apt-get update、sudo apt-get install vlc libvlccore-dev libvlc-dev&#xff09; .axaml 代码 注…...

网络协议(八):IP 协议

目录 1. IP 协议简介 2. 首部属性 2.1 版本号 2.2 首部长度 2.3 服务类型 2.4 总长度 2.5 > 16位标识 & 3位标志 & 13位片偏移 2.5.1 > 16 位标识 2.5.2 > 3 位标志 2.5.3 > 13 位片偏移 2.6 生存时间(TTL) 2.7 > 8 位协议 2.8 首部校验和…...

深度解析 pytest 参数化与 --count 执行顺序的奥秘

有这样一个业务场景&#xff0c;登录不同地区的账号&#xff0c;重复500遍&#xff0c;以验证登录功能是否正常。 登录的代码如下&#xff0c;其中login_data是一个fixture&#xff0c;用来组织数据&#xff1a; pytest.mark.parametrize("login_data", [cn_test, …...

【traefik】forwadAuth中间件跨namespace请求的问题

前情提要 - fowardAuth鉴权中间件的使用&#xff1a; 【traefik】使用forwardAuth中间件做网关层的全局鉴权 1. 问题 我的 traefik-ingress-controller 所在 namespace: traefik 业务服务所在 namespace: apps 路由与 forwardAuth 中间件配置如下&#xff1a; # 路由 apiV…...

java学习记录16

并发基础 进程与线程 进程 进程&#xff08;Process&#xff09;是计算机中正在运行的程序。程序是一种静态的概念&#xff0c;而进程是程序在执行过程中创建的动态实体。每个进程都有自己的内存空间、代码、数据和资源&#xff0c;它也是操作系统进行任务调度和资源分配的基…...

【Lua学习之旅】之单行/多行注释

Lua的注释 单行注释多行注释 单行注释 lua中的单行注释采用两个短横线"--" --这是lua单行注释多行注释 写法一&#xff1a; --[[ 这个lua的多行注释&#xff0c; 很多资料说多行注释不可以嵌套&#xff0c; 根据我的测试&#xff0c;这种写法的多行注释在lua54版…...

[Effective C++]条款45 运用成员函数模板接受所有兼容类型

本文初发于 “天目中云的小站”&#xff0c;同步转载于此。 条款45 : 运用成员函数模板接受所有兼容类型 本条款中我们将会以智能指针为例, 介绍如何通过成员函数模板使一个模板类可以接受所有兼容类型. 我们先来构建一个简单的继承体系 : class Top { ... }; class Middle: p…...

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

Harry技术添加存储&#xff08;minio、aliyun oss&#xff09;、短信sms&#xff08;aliyun、模拟&#xff09;、邮件发送等功能 基于SpringBoot3Vue3前后端分离的Java快速开发框架 项目简介&#xff1a;基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-P…...

【python基础——异常BUG】

什么是异常(BUG) 检测到错误,py编译器无法继续执行,反而出现错误提示 如果遇到错误能继续执行,那么就捕获(try) 1.得到异常:try的执行,try内只可以捕获一个异常 2.预案执行:except后面的语句 3.传入异常:except … as uestcprint(uestc) 4.没有异常:else… 5.鉴定完毕,收尾的语…...

解决Qt打印中文字符出现乱码

在 Windows 平台上&#xff0c;默认的控制台编码可能不是 UTF-8&#xff0c;这可能会导致中文字符的显示问题。 下面是在 Qt 应用程序中设置中文字体&#xff0c;并确保控制台输出为 UTF-8 编码&#xff1a; 1. Qt 应用程序代码 在 Qt 中&#xff0c;我们可以使用 QApplic…...

第三十八章 Spring之假如让你来写MVC——适配器篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...

服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found.

服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found. 1. 故障现象2. 解决思路3. 故障分析4. 案件回溯5. 解决问题 1. 故障现象 有一台服务器业务报无法连接. 尝试用Ping命令发现无法ping通. 通过控制台查看发现有以下报错: error: ..…...

昵称 校验

1. 基本格式校验 1. 长度限制 • 设置最小和最大字符长度&#xff1a;2-20 个字符&#xff08;常见范围&#xff09;。 • 避免昵称过短或过长影响显示和识别。 • 示例&#xff1a; • 2 ≤ 长度 ≤ 20&#xff1a;let minLength 2 let maxLength 20 if nickname.count <…...

丹青识画系统AI编程辅助:基于代码理解的智能影像处理脚本生成

丹青识画系统AI编程辅助&#xff1a;基于代码理解的智能影像处理脚本生成 最近在折腾一些图像处理的小项目&#xff0c;经常需要写一些重复性的脚本&#xff0c;比如批量调整图片尺寸、识别特定物体轮廓、或者给图片加滤镜。每次都得翻文档、查API&#xff0c;虽然代码不复杂&…...

烽火HG680-KA刷机全攻略:海思MV310芯片优化+ADB免拆教程(附固件包)

烽火HG680-KA深度优化指南&#xff1a;解锁海思MV310芯片的隐藏潜能 当你手中的烽火HG680-KA机顶盒开始出现卡顿、存储不足或功能受限时&#xff0c;或许该考虑给它来一次彻底的"系统大扫除"了。作为一款搭载海思MV310芯片的主流设备&#xff0c;其硬件潜力远超市面上…...

12. 本地算力不足?云服务器选型指南(高性价比+适配大模型)

001、算力困境:为什么我们需要云服务器? 从一次深夜调试说起 上周三凌晨两点,我的本地工作站风扇开始狂转——16核CPU占用率97%,64GB内存基本吃满,两块3090显卡的显存指示灯红得发烫。屏幕上正在跑一个7B参数的模型微调任务,进度条卡在23%已经半小时没动过。终端里突然…...

WebDataset压缩算法对比:GZIP、BZIP2与LZMA的性能分析

WebDataset压缩算法对比&#xff1a;GZIP、BZIP2与LZMA的性能分析 【免费下载链接】webdataset A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch. 项目地址: https://gitcode.com/gh_mirrors/we…...

微信小程序图表库终极指南:快速实现数据可视化的完整教程

微信小程序图表库终极指南&#xff1a;快速实现数据可视化的完整教程 【免费下载链接】wx-charts 微信小程序图表库&#xff0c;Charts for WeChat Mini Program 项目地址: https://gitcode.com/gh_mirrors/wx/wx-charts 在微信小程序开发中&#xff0c;如何高效地展示数…...

OpenClaw镜像体验:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF云端快速测试方案

OpenClaw镜像体验&#xff1a;Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF云端快速测试方案 1. 为什么选择云端体验OpenClaw 第一次接触OpenClaw时&#xff0c;我被它的自动化能力吸引&#xff0c;但本地安装过程却让我望而却步。作为一个经常需要快速验证技术方案的开…...

cat-catch:突破网页资源捕获限制的高效下载解决方案

cat-catch&#xff1a;突破网页资源捕获限制的高效下载解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 问题&#xff1a;网页资源获取的三…...

跳棋游戏中的多重捕获实现

跳棋(Checkers)是许多棋类爱好者喜爱的一款游戏,它的规则简单,但策略深度却非常丰富。今天我们来讨论跳棋游戏中的一个复杂而有趣的功能——多重捕获的实现。在本文中,我们将深入探讨如何在JavaScript中编写一个可以检测并执行多重捕获的函数。 基本概念 在跳棋游戏中,…...

OpenClaw配置备份方案:Qwen3.5-9B-AWQ-4bit迁移到新设备

OpenClaw配置备份方案&#xff1a;Qwen3.5-9B-AWQ-4bit迁移到新设备 1. 为什么需要完整的配置迁移方案 上周我的主力开发机突然硬盘故障&#xff0c;导致所有OpenClaw配置丢失。重新搭建环境时发现&#xff0c;单纯备份openclaw.json远远不够——飞书机器人授权失效、硬件指纹…...

CSS3毛玻璃效果实战:backdrop-filter与filter的兼容性解决方案

1. 毛玻璃效果的前世今生 第一次看到毛玻璃效果是在苹果的iOS系统上&#xff0c;那种半透明磨砂的质感瞬间让我眼前一亮。作为前端开发者&#xff0c;我立刻开始研究如何用代码实现这种被称为"玻璃拟态"(Glassmorphism)的设计风格。其实这种效果在CSS3之前就有开发者…...