来使用分支语句和循环语句实现一个小游戏吧(猜数字游戏)

news2024/12/23 17:44:53

猜数字游戏

  • 1.代码展示
  • 2.菜单设计
  • 3.主函数部分
  • 3.随机数设计

1.代码展示

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void menu()
{
	printf("************************\n");
	printf("*** 1.play   0.exit  ***\n");
	printf("************************\n");
}
void game()
{
	int ret = rand() % 100 + 1;
	int gess = 0;
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &gess);
		if (gess > ret)
		{
			printf("猜大了\n");
		}
		else if (gess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}

int main()
{
	srand((unsigned int)time(NULL));
	int input = 0;
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误\n");
			break;
		}

	} while (input);
	return 0;

}

2.菜单设计

	printf("************************\n");
	printf("*** 1.play   0.exit  ***\n");
	printf("************************\n");

菜单设计就是用三个printf就行了,现在初学不需要很高级的菜单,只要这个菜单能表达我们想要表达的事情就行了。
这个菜单告诉我们选择1进行游戏,选择0退出游戏。
在这里插入图片描述

3.主函数部分

有了菜单我们就可以进行选择,二我们想玩玩一把再玩一把,这个时候就可以用到我们学的循环语句,这个我们选择do……while语句,这是因为do……while至少会循环一次,也就是说就算我我们一把都不玩我们都会进去一次,然后选择0退出。

	int input = 0;
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入错误\n");
			break;
		}

	} while (input);

3.随机数设计

设置随机数可能就是整个游戏的精髓。
这了设置随机数我们要涉及到三个库函数。

  1. int rand (void);//生成随机数 。头文件#include <stdlib.h>
    在这里插入图片描述

  2. void srand (unsigned int seed);//设置随机数起点。头文件#include <stdlib.h>
    在这里插入图片描述

  3. time_t time (time_t* timer);//时间戳。头文件#include <time.h>
    在这里插入图片描述

这里说明一下我们的rand和srand一定是配套出现的。
因为如果只有rand的话你可以理解为他只会生成一遍的随机数,生成后就不会改变了,以后你在输出随机数的时候都是一样的,二我们srand是一个重置的过程,这样他们两个配合起来就可以生成不一样的随机数了。
而我们的srand生成随机数的范围是0-RAND_MAX,也就是0-32767。
而现在我们想要的到0-100的数的话只要rand()%100就能得到0-99的数在+1就可以得到1-100的数了也就是:rand()%100+1。

同时srand()参数也要是个随机数,这听起来好像有点相互矛盾,但是准确来讲因改说是变动的数,那生活中什么一直在变呢。时间,我们的时间无时无刻都在变动,这个时候time函数就起到作用了。

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

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

相关文章

移动端导航设计

根据产品层级的深度和广度&#xff0c;选择适合的导航模式&#xff0c;是产品设计中的关键一环。 任何APP的组织信息都需要以某种导航框架固定起来&#xff0c;一个新的产品合适的导航框架&#xff0c;决定了产品之后的延伸和扩展。 移动端的屏幕尺寸就这么大&#xff0c;操作方…

java定位系统源码,通过独特的射频处理,配合先进的位置算法,可以有效计算出复杂环境下的人员与物品的活动信息

智慧工厂人员定位系统源码&#xff0c;区域电子围栏管控源码 文末获取联系&#xff01; 在工厂日常生产活动中&#xff0c;企业很难精准地掌握访客和承包商等各类人员的实际位置&#xff0c;且无法实时监控巡检人员的巡检路线&#xff0c;当厂区发生灾情或其他异常状况时&#…

Layer组件多个iframe弹出层打开与关闭及参数传递

Layer官网地址&#xff1a;http://layer.layui.com/ 1、多个iframe弹出层&#xff08;非嵌套&#xff09; 1.打开iframe弹出层js代码 &#xff08;1&#xff09;示例一&#xff1a; content参数可传入要打开的页面&#xff0c;type参数传2&#xff0c;即可打开iframe类型的弹层…

STM32入门指南:了解STM32

1. 初识 STM32 STM32&#xff0c;从字面上来理解&#xff0c;ST 是意法半导体&#xff0c;M 是 Microelectronics 的缩写&#xff0c;32 表示 32 位&#xff0c;合起来理解&#xff0c;STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器当中&#xff0c;STM32 …

GitHub新建仓库 上传文档

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 振&#xff0c;而飞破虚空 点击New repository 自定义仓库名称&#xff0c;并勾选 “Add a README file” 选项 复制Code链接 打开终端Git git cl…

夏驰和徐策带你从零开始学数据结构——哈希表

哈希表的概念&#xff1a; 哈希表是一种常用的数据结构&#xff0c;它可以在 O(1) 的时间复杂度内执行插入、查找和删除操作。哈希表的核心思想是使用哈希函数将键值对映射到数组中的一个位置上&#xff0c;从而实现快速的访问和修改。 哈希表由两个主要部分组成&#xff1a;…

Android开发—入门Kotlin编程语言

一、Kotlin简介 为什么Kotlin能代替Java此为Android官方第一支持的开发语言&#xff1f; 1&#xff09;Kotlin的语法更加简洁&#xff0c;对于同样的功能&#xff0c;使用Ktolin开发的代码量可能会比使用Java开发减少50%甚至更多&#xff1b; 2&#xff09;Kotlin语法更加高…

【Linux】文件IO---应用开发角度

目录简述 目录 前言&#xff1a; 一、Linux的文件 二、Linux文件系统目录结构 三、文件访问的方式 &#xff08;1&#xff09;通用方式&#xff1a;open/read/write/lseek/close 示例&#xff1a; &#xff08;2&#xff09;非通用函数&#xff1a;ioctl/mmap 示例&am…

使用ChatGPT+MindShow一键生成PPT,以后再也不用担心制作PPT啦

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

深度学习及使用全连接神经网络实现手写数字识别案例开发

1.什么是深度学习和机器学习有什么区别&#xff1f;是什么原因使得部分问题机器学习无法解决需要深入研究深度学习&#xff1f; 人工智能、机器学习、深度学习的区别是什么&#xff1f;_哔哩哔哩_bilibili 深度学习是一种机器学习方法&#xff0c;它通过构建多层神经网络来实…

tmall.product.template.get( 产品接口 )

&#xffe5;免费必须用户授权 产品模板获取接口&#xff0c;对于非关键属性的类目&#xff0c;发布达尔文(监管)产品时&#xff0c;必须先根据类目获取产品模板。 产品模板定义产品发布需要的类目属性&#xff0c;包括&#xff1a; 关键属性:关键属性可以在类目上不存在。不…

spring的应用 xml配置实现定时任务

定时任务的实现&#xff1a; 通过xml实现&#xff1a; 创建qiuckstart的maven文件 把依赖配置改改 jdk1.8 以及12 再删掉一些不必要的配置 引入spring依赖坐标 和java同一个目录下创建resources 作为 资源根 结构如图&#xff1a; spring.xml配置&#xff1a; 从官网复制…

《JavaEE》网络中的基本概念

&#x1f451;作者主页&#xff1a;Java冰激凌 &#x1f4d6;专栏链接&#xff1a;JavaEE 局域网/广域网 在我们的生活中 经常会使用到网络 对于网络 我们现在已经变得与生活息息相关 甚至可以说为密不可分 而在我们的网络中 我们的网络是分为局域网与广域网 我们的局域网和广域…

【8086汇编】环境搭建 - 学习笔记:WIN10下安装配置 MASMPlus + DOSBox

【8086汇编】环境搭建 - 学习笔记&#xff1a;WIN10下安装配置 MASMPlus DOSBox 一、MASMPlus 1.2下载安装 二、DOSBox 0.74-3下载安装配置自动挂载C盘添加环境变量 三、masm v5.0四、ml.exe v6.11参考资料 一、MASMPlus 1.2 下载 脚本之家&#xff1a;MASMPlus(汇编开发环境…

【深度学习】第六阶段

1、超参数调试 在深度学习中&#xff0c;有各种各样的超参数&#xff0c;其中包括&#xff1a;学习率 α \alpha α、动量超参数 β \beta β、Adam中的超参数 β 1 \beta_1 β1​、 β 2 \beta_2 β2​和 ε \varepsilon ε、神经网络层数、每层的结点数量、 小样本数据集大小…

mlq color transfer: Color Transfer Using Probabilistic Moving Least Squares

文章目录 Color Transfer Using Probabilistic Moving Least Squares1. 颜色转换2. 如何计算匹配点的概率3. 核心思想和具体操作&#xff1a;4. 特征点覆盖不到的颜色4.1这里介绍一下引文7&#xff1a;4.2. 分析 5. Probabilistic Moving Least Squares with Spatial Constrain…

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络) 目录 智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)预测效果基本介绍程序设计参考资料预测效果 基本介绍 MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络…

如何通过Bug跟踪管理,有效减少软件缺陷Bug?

1、Bug生命周期 Bug的生命周期是指从Bug被发现到被关闭的过程。一般的缺陷状态是&#xff1a;新建--指派--已解决--待验--关闭。如果待验的Bug没有解决&#xff0c;我们需要重新激活--指派--已解决&#xff0c;循环这个过程&#xff0c;中间还包括拒绝、延期等。 Bug跟踪管理 减…

设计模式:创建者模式 - 代理模式

文章目录 1.概述2.结构3.静态代理4.JDK动态代理5.CGLIB动态代理6.三种代理的对比7.优缺点8.使用场景 1.概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时&#xff0c;访问对象不适合或者不能直接引用目标对象&#xff0c;代理对象作为访问对象和目标对象…

VUE3 学习笔记(八)引入 EasyUI for Vue

目录 一、什么是 EasyUI? 二、安装EasyUI for Vue3 1. 使用NPM安装 2. 导入EasyUI 三、安装完成出现问题解决 一、什么是 EasyUI? easyui是一个基于jQuery、Angular、Vue和React的用户界面组件的集合。easyui为构建现代的、交互式的、javascript应用程序提供了基本功能…