C语言---猜数字游戏
猜数字游戏代码
#include <stdio.h>
#include <time.h>
#include <stdlib.h>void meun()
{printf("**********************\n");printf("******* 1.play *******\n");printf("******* 0.quit *******\n");printf("**********************\n");
}void game()
{int rand_number = rand() % 100 + 1;//随机数的范围是1~100int input2 = 0;int right = 100;//最大是100int left = 1;//最小是1int count = 5;//猜数字机会printf("猜数字游戏开始\n开始猜数字\n");while (count){printf("请输入:");scanf("%d", &input2);if (input2 > rand_number){ count--;right = input2;printf("猜大了,范围是 %d--%d\n",left,right);printf("你还有%d机会\n", count);}if (input2 < rand_number){count--;left = input2;printf("猜小了,范围是 %d--%d\n", left, right);printf("你还有%d机会\n", count);}if (input2 == rand_number){printf("恭喜你猜对了\n");break;}}if (count == 0){printf("游戏失败\n");printf("要猜的数字是%d", rand_number);}
}int main()
{srand((unsigned int)time(NULL));meun();regain:printf("请选择:");int input1 = 0;scanf("%d", &input1);switch (input1){case 1:{printf("进入游戏\n");game();break; }case 0:{printf("退出游戏\n");break;}default:{printf("输入错误,请重新输入\n");goto regain;}}return 0;
}
猜数字游戏思路
1.菜单
2.玩游戏还是退出游戏
3.游戏–设置随机数
4.猜数字
1.菜单
void meun()
{printf("**********************\n");printf("******* 1.play *******\n");printf("******* 0.quit *******\n");printf("**********************\n");
}
提示玩家输入1表示玩游戏,输入0表示退出游戏
2.玩游戏还是退出游戏
运用 switch语句实现
regain:printf("请选择:");int input1 = 0;scanf("%d", &input1);switch (input1){case 1:{printf("进入游戏\n");game();break; }case 0:{printf("退出游戏\n");break;}default:{printf("输入错误,请重新输入\n");goto regain;}}
input1 = 1进入游戏
input = 0退出游戏
input1等于其他数字时提示输入错误,重新输入
重新输入用goto语句实现,在上面这个代码中,会跳到regain这里
3.游戏–设置随机数
使用rand()函数设置随机数,为确保每次运行程序时生成的随机数序列不同,通常需要使用srand()函数来设置随机数种子
srand()函数使用time(NULL)作为种子,意味着随机数种子会根据当前时间变化,从而使得每次运行程序生成的随机数序列不同
rand() srand()的头文件是stdlib.h
time()的头文件是time.h
1 srand((unsigned int)time(NULL));2 int rand_number = rand() % 100 + 1;//随机数的范围是1~100
4.猜数字
判断输入的数与随机数那个大,输入的数比较大就输出猜大了,输入的数比较小就输出猜小了,相等就输出猜对了,并且停止循环(运用break)
void game()
{int rand_number = rand() % 100 + 1;//随机数的范围是1~100printf("猜数字游戏开始\n开始猜数字\n");while (1){printf("请输入:");scanf("%d", &input2);if (input2 > rand_number){ printf("猜大了\n");}if (input2 < rand_number){printf("猜小了"\n);}if (input2 == rand_number){printf("恭喜你猜对了\n");break;}}
}
到这猜数字的基本思路就完成了
当然还可以改进,比如显示范围,多少次机会等等
left = 1 right = 100表示随机数的范围是1~100
count = 5表示有五次猜数字的机会
假设输入的input2 = 45,如果猜大了,让right = input2范围就变成了left -- right即1 -- 45;如果猜小了,让left = input2 范围就变成了left -- right即45 -- 100
每次猜完机会减一,即count--,当count == 0时,机会为0,游戏结束
void game()
{int rand_number = rand() % 100 + 1;//随机数的范围是1~100int input2 = 0;int right = 100;//最大是100int left = 1;//最小是1int count = 5;//猜数字机会printf("猜数字游戏开始\n开始猜数字\n");while (count){printf("请输入:");scanf("%d", &input2);if (input2 > rand_number){ count--;right = input2;printf("猜大了,范围是 %d--%d\n",left,right);printf("你还有%d机会\n", count);}if (input2 < rand_number){count--;left = input2;printf("猜小了,范围是 %d--%d\n", left, right);printf("你还有%d机会\n", count);}if (input2 == rand_number){printf("恭喜你猜对了\n");break;}}if (count == 0){printf("游戏失败\n");printf("要猜的数字是%d", rand_number);}
}
相关文章:
C语言---猜数字游戏
猜数字游戏代码 #include <stdio.h> #include <time.h> #include <stdlib.h>void meun() {printf("**********************\n");printf("******* 1.play *******\n");printf("******* 0.quit *******\n");printf("*****…...
C#中泛型的协变和逆变
协变: 在泛型接口中,使用out关键字可以声明协变。这意味着接口的泛型参数只能作为返回类型出现,而不能作为方法的参数类型。 示例:泛型接口中的协变 假设我们有一个基类Animal和一个派生类Dog: csharp复制 public…...
Select 下拉菜单选项分组
使用<select>元素创建下拉菜单,并使用 <optgroup> 元素对选项进行分组。<optgroup> 元素允许你将相关的 <option> 元素分组在一起,并为每个分组添加一个标签。 <form action"#" method"post"><la…...
文件上传漏洞详细利用流程
一、了解基本术语 1、后门 像房子一样,前门后门都可以进出房子,而较之前门,后门更具有隐蔽性。电脑技术中的后门是抽象概念,意指隐蔽性高或不常用的,区别于常规操作所使用的一种出入口。现金网络后门形形色色&#x…...
蓝桥与力扣刷题(蓝桥 旋转)
题目:图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时针旋转 90 度。 我们用一个 nm的二维数组来表示一个图片,例如下面给出一个 34 的 图片的例子: 1 3 5 7 9 8 7 6 3 5 9 7 这个图片顺时针旋转…...
transformer架构解析{掩码,(自)注意力机制,多头(自)注意力机制}(含代码)-3
目录 前言 掩码张量 什么是掩码张量 掩码张量的作用 生成掩码张量实现 注意力机制 学习目标 注意力计算规则 注意力和自注意力 注意力机制 注意力机制计算规则的代码实现 多头注意力机制 学习目标 什么是多头注意力机制 多头注意力计算机制的作用 多头注意力机…...
使用DiskGenius工具来实现物理机多硬盘虚拟化迁移
使用DiskGenius工具来实现物理机多硬盘虚拟化迁移 概述准备工作注意事项实操过程记录1、Win7虚拟机,安装有两个硬盘(硬盘0和硬盘1),各分了一个区,磁盘2是一块未使用的磁盘2、运行DiskGenius程序,记录现有各…...
iOS安全和逆向系列教程 第5篇 iOS基础开发知识速览 - 理解你要逆向的目标
iOS安全和逆向系列教程 第5篇 iOS基础开发知识速览 - 理解你要逆向的目标 正如上一篇文章结尾所预告的,在完成环境搭建后,我们需要了解iOS开发的基础知识。这不是要求你成为一名iOS开发者,而是为了让你在逆向分析过程中能够理解应用的代码结…...
计算机常用单词
文章目录 计算机单词1-100101-200201-300301-400401-500501-600601-700701-800801-900901-10001001-11001101-12001201-13001301-14001401-15001501-16001601-1695 计算机单词 参考 1-100 1. file [英faɪl 美faɪl] n. 文件;v. 保存文件 2. command [英kəˈmɑ…...
TS的接口 泛型 自定义类型 在接口中定义一个非必须的属性
TS的接口 泛型 自定义类型 接口 新建一个ts文件,在里面定义一个接口 export interface PersonInter{id:string,name:string,age:number }在vue文件中引入这个ts文件 <script lang"ts" setup name"Person">import {type PersonInter} …...
76.读取计时器运行时间 C#例子 WPF例子
TimerManager:一个增强的定时器类,带时间管理功能 在使用定时器时,我们常常需要知道定时器的运行状态,比如它已经运行了多久,或者还剩下多少时间。然而,.NET 的 System.Timers.Timer 类本身并没有直接提供…...
React封装通用Table组件,支持搜索(多条件)、筛选、自动序号、数据量统计等功能。未采用二次封装调整灵活,包含使用文档
封装通用组件 一、封装思想二、react代码三、css代码四、实现效果五、使用文档 BasicTableModal 表格模态框组件1.组件简介2.功能特点3.使用方法基础用法宽度控制示例带筛选功能搜索功能示例自定义单元格渲染 4.API 说明PropsColumn 配置项Filter 配置项 5.注意事项 一、封装思…...
【JavaEE】-- 多线程(初阶)4
文章目录 8.多线程案例8.1 单例模式8.1.1 饿汉模式8.1.2 懒汉模式 8.2 阻塞队列8.2.1 什么是阻塞队列8.2.2 生产者消费者模型8.2.3 标准库中的阻塞队列8.2.4 阻塞队列的应用场景8.2.4.1 消息队列 8.2.5 异步操作8.2.5 自定义实现阻塞队列8.2.6 阻塞队列--生产者消费者模型 8.3 …...
WP 高级摘要插件:助力 WordPress 文章摘要精准自定义显示
wordpress插件介绍 “WP高级摘要插件”功能丰富,它允许用户在WordPress后台自定义文章摘要。 可设置摘要长度,灵活调整展示字数;设定摘要最后的显示字符, 如常用的省略号等以提示内容未完整展示;指定允许在摘要中显示…...
论文阅读 EEG-Inception
EEG-Inception: A Novel Deep Convolutional Neural Network for Assistive ERP-Based Brain-Computer Interfaces EEG-Inception是第一个集成Inception模块进行ERP检测的模型,它有效地结合了轻型架构中的其他结构,提高了我们方法的性能。 本研究的主要目…...
FFmpeg入门:最简单的音频播放器
FFmpeg入门:最简单的音频播放器 欢迎大家来到FFmpeg入门的第二章,今天只做一个最简单的FFmpeg音频播放器;同样,话不多说,先上流程图 流程图 以上流程和视频播放器的解码过程基本上是一致的; 不同点在于 S…...
物联网感应层数据采集器实现协议转换 数据格式化
数据采集器的核心功能实现涉及多个技术层面的协同工作,以下是各模块的详细实现解析: 协议转换实现 协议解析引擎:采用插件式架构,例如: P r o t o c o l P a r...
基于Linux系统的物联网智能终端
背景 产品研发和项目研发有什么区别?一个令人发指的问题,刚开始工作时项目开发居多,认为项目开发和产品开发区别不大,待后来随着自身能力的提升,逐步感到要开发一个好产品还是比较难的,我认为项目开发的目的…...
8.1.STM32_OLED
4.STM32_OLED 跟着江协科大的视频,无法点亮OLED屏幕解决办法 每个人使用的0.96寸OLED屏幕信号不一样,存在很多兼容性问题 归根结底就是驱动的问题! 本人的OLED是SSD1306,在淘宝店铺找了驱动文件后成功点亮,示例见文末 请针对自…...
Netty笔记9:粘包半包
Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8…...
【算法方法总结·三】滑动窗口的一些技巧和注意事项
【算法方法总结三】滑动窗口的一些技巧和注意事项 【算法方法总结一】二分法的一些技巧和注意事项【算法方法总结二】双指针的一些技巧和注意事项【算法方法总结三】滑动窗口的一些技巧和注意事项 【滑动窗口】 数组的和 随着 右边指针 移动一定是 非递减 的,就是 …...
LabVIEW虚拟弗兰克赫兹实验仪
随着信息技术的飞速发展,虚拟仿真技术已经成为教学和研究中不可或缺的工具。开发了一种基于LabVIEW平台开发的虚拟弗兰克赫兹实验仪,该系统不仅能模拟实验操作,还能实时绘制数据图形,极大地丰富了物理实验的教学内容和方式。 …...
spring boot + vue 搭建环境
参考文档:https://blog.csdn.net/weixin_44215249/article/details/117376417?fromshareblogdetail&sharetypeblogdetail&sharerId117376417&sharereferPC&sharesourceqxpapt&sharefromfrom_link. spring boot vue 搭建环境 一、浏览器二、jd…...
清华团队提出HistoCell,从组织学图像推断超分辨率细胞空间分布助力癌症研究|顶刊精析·25-03-02
小罗碎碎念 今天和大家分享一篇2025-02-21发表于nature communications的文章,内容涉及病理空转单细胞。 从组织学图像推断细胞空间分布对癌症研究意义重大,但现有方法存在标注工作量大、分辨率或特征挖掘不足等局限。研究旨在开发一种高效准确的方法。 …...
分布式锁—2.Redisson的可重入锁一
大纲 1.Redisson可重入锁RedissonLock概述 2.可重入锁源码之创建RedissonClient实例 3.可重入锁源码之lua脚本加锁逻辑 4.可重入锁源码之WatchDog维持加锁逻辑 5.可重入锁源码之可重入加锁逻辑 6.可重入锁源码之锁的互斥阻塞逻辑 7.可重入锁源码之释放锁逻辑 8.可重入锁…...
html+js 轮播图
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>轮播图示例</title><style>/* 基本样式…...
vue3:初学 vue-router 路由配置
承上一篇:nodejs:express js-mdict 作为后端,vue 3 vite 作为前端,在线查询英汉词典 安装 cnpm install vue-router -S 现在讲一讲 vue3:vue-router 路由配置 cd \js\mydict-web\src mkdir router cd router 我还…...
23种设计模式之《备忘录模式(Memento)》在c#中的应用及理解
程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式࿰…...
Python 爬取唐诗宋词三百首
你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例,它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…...
C语言408考研先行课第一课:数据类型
由于408要考数据结构……会有算法题…… 所以,需要C语言来进行一个预备…… 因为大一贪玩,C语言根本没学进去……谁能想到考研还用得到呢?【手动doge(bushi) 软件用的是Clion,可以自行搜索教程下载使用。…...
