[C语言]猜数字

2023-10-27

        本文章为c语言猜数字小游戏的教学

        设计思路:

目录

1.菜单的创建

2.猜数字的实现

3.完整代码


1.菜单的创建

        先设计一个类似菜单的界面,供选择来实现游戏或退出 

void menu()
{
	printf("****************\n");
	printf("******猜数字*****\n");
	printf("*****1.PLAY*****\n");
	printf("*****0.EXIT*****\n");
	printf("****************\n");
	printf("请输入选项\n");
}

         接收玩家的输入选项来进行分别的操作

        输入1,程序则会进入game函数进行下一步

        输入0,则会退出游戏

        搭配do-while结构和switch结构能够很好的完成这一需求,do-while能先将菜单选项呈现出来,再根据玩家所选的选项进行操作。

        switch结构则是对于多分支结构能够很好的运用

int main()
{
	int input = 0;

	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("开始游玩,猜数字游戏\n");
				game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入无效,请重新输入\n");
			break;
		}
	} while (input);//如果input=0,则跳出循环
	return 0;
}

2.猜数字的实现

        既然是猜数字,则要生成一个随机数。

        rand函数是专门用来生成随机数的,返回的是0~32767范围内的数

        rand函数使用之前要使用一个srand函数来设置随机数的生成器

        格式:rand()%整数,能够规定随机数的范围在0~整数之间(但不包括整数

        eg:rand()%100,生成的是0~99的随机数

               rand()%100+1,生成的是1~100的随机数

void game()
{
	srand((unsigned)time(NULL));
	int a = rand() % 100 + 1;//生成随机数
	int b = 0;
	int count = 0;//计数菌
	//printf("%d", a);
	while (1)//让循环进行下去,直到数被猜出来为止
	{
		printf("请输出数字:");
		scanf("%d", &b);
		if (a < b)
		{
			printf("猜大了\n");
			count++;
		}
		else if (a > b)
		{
			printf("猜小了\n");
			count++;
		}
		else
		{
			printf("恭喜!猜中了\n");
			printf("共猜了%d次\n", count);
			break;
		}
	}
}

3.完整代码


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

void menu()
{
	printf("****************\n");
	printf("******猜数字*****\n");
	printf("*****1.PLAY*****\n");
	printf("*****0.EXIT*****\n");
	printf("****************\n");
	printf("请输入选项\n");
}

void game()
{
	srand((unsigned)time(NULL));
	int a = rand() % 100 + 1;
	int b = 0;
	int count = 0;
	//printf("%d", a);
	while (1)
	{
		printf("请输出数字:");
		scanf("%d", &b);
		if (a < b)
		{
			printf("猜大了\n");
			count++;
		}
		else if (a > b)
		{
			printf("猜小了\n");
			count++;
		}
		else
		{
			printf("恭喜!猜中了\n");
			printf("共猜了%d次\n", count);
			break;
		}
	}
}

int main()
{
	int input = 0;

	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("开始游玩,猜数字游戏\n");
				game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入无效,请重新输入\n");
			break;
		}
	} while (input);
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[C语言]猜数字 的相关文章

  • 在列标题上绘制矩形

    I m painting rectangle on the column headers in datagridview but on scrolling to right it disappears as in the picture s
  • 如何使 Window.Current 关闭后可见?

    我有一个可以打开新窗口的应用程序 如果原始窗口关闭 然后用户启动应用程序 例如从开始菜单 TryShowAsStandaloneAsync无法打开新窗口 为什么 所以我想 复活 原来的那个 但虽然我用Window Current Activ
  • 如何获取列表框中项目的索引?

    我正在将项目添加到ListBox像这样 myListBox Items addRange myObjectArray 我还想通过以下方式选择我添加的一些项目 foreach MyObject m in otherListOfMyObject
  • 在 Silverlight 中同步操作

    我有一个 Silverlight 应用程序 它使用操作从模型获取数据 再次从 WCF 服务获取数据 我需要以某种方式同步两个 ActionCallback 或等待它们 然后执行一些代码 Example model GetMyTypeList
  • System.Drawing.dll / NumericUpDown 的 .NET 访问冲突异常

    我遇到了一个非常愚蠢的问题 我已经尝试完全重新安装 NET 但它没有解决问题 我什至无法通过谷歌搜索找到其他有同样问题的人 就在我的计算机上 如果我将 NumericUpDown 控件添加到 NET 项目中的窗体并运行该应用程序 则在运行该
  • 将 python 字典翻译为 C++

    我有包含以下代码的 python 代码 d d 0 0 0 d 1 2 1 d 2 1 2 d 2 3 3 d 3 2 4 for i j in d print d i j d j i 不幸的是 对于我的目的来说 循环遍历 python 中
  • 如何将多种语言设置放入单个 .clang-format 文件中

    我想为 java javascript 和 c 创建一个 clang 格式 我知道如何转储单一语言的示例配置 但不知道如何合并这 3 个配置文件 有关如何将多种语言配置放入单个文件中的示例 BasedOnStyle LLVM IndentW
  • 如何在 Mac OS X 中获取 aio 信号处理程序的用户数据

    我尝试在 Mac OS X 下使用 aio 函数进行异步文件 IO 但在将某种形式的用户数据输入信号处理程序时遇到问题 这是设置操作的代码 class aio context public aio context int fildes bo
  • WPF 通知获取属性的 PropertyChanged

    我有INotifyPropertyChanged实施使用CallerMemberName public event PropertyChangedEventHandler PropertyChanged protected virtual
  • Serilog 与 Autofac

    我有一个记录器包装器 我想使用以下配置将 serilog 注入其中 var logger new LoggerConfiguration WriteTo RollingFile AppDomain CurrentDomain GetData
  • std::function 中参数的自动动态转换

    我们有多态类 A 和 B 例如 struct A virtual A struct B final public A void f std cout lt lt f lt lt std endl 我想分配一个变量std function
  • 底层连接已关闭:接收时发生意外错误

    我来这里是因为我在通过 ftp 协议下载一些文件时遇到问题 这很奇怪 因为它偶尔会发生 甚至对于同一个文件也是如此 只是一个精确度 我正在下载非常大的文件 从 500 Mo 到 30Go 以下是我的函数返回的异常类型 抱歉 这是法语 Sys
  • 如何使用 PostSharp 拦截基类上的方法调用?

    我想提供一个实现System Object ToString使用 PostSharp 到各种类 我创建了一个继承自的方面MethodInterceptionAspect但是OnInvoke调用时不会调用方法EchoDto ToString发
  • 对于相同的数据库对象,实体框架对象引用是否相同

    如果我从不同位置查询 逻辑上 在数据库中 相同的对象 实体框架是否返回相同的对象引用 例如 我查询了名为 Joe Black 的客户 并假设现在我知道数据库中只有一个 Joe Black Customer c select blabla w
  • 检查SQL Server数据库表中是否存在表或列

    在 SQL Server 数据库中创建列或表之前 我想检查所需的表和 或列是否存在 我已经四处搜寻 到目前为止发现了两种方法 我不想使用存储过程 通过使用SqlCommand ExecuteScalar 方法并捕获异常来确定表 列是否存在
  • 为什么%c前面需要加空格? [复制]

    这个问题在这里已经有答案了 下面的代码一编译就给出了奇怪的o p main char name 3 float price 3 int pages 3 i printf nEnter names prices and no of pages
  • Caliburn.Micro 事件聚合器

    如果这是一个非常愚蠢的问题 请道歉 但我刚刚开始使用 caliburn micro 我正在努力获取 eventAggregator 似乎没有任何内容订阅 我不确定问题是出在视图模型还是引导程序上 这是视图模型 class MainWindo
  • 按下按钮时更改几何绘图画笔的颜色

    我创建了一个按钮模板 有一个图像和一个标签 图像的来源位于 ResourceDictionary Pictures 中 图片的来源是具有白色画笔颜色的 DrawingImage
  • 在memcpy缓冲区UB上使用reinterpret_cast吗?

    给定代码 struct A auto obj new A std vector
  • C#无循环方式将字符串拆分为多维数组或锯齿状数组

    如何在不循环的情况下将字符串拆分为多维数组或锯齿状数组 我看到一个代码片段 其中有人使用文件流执行此操作 但我不知道如何使其适用于我的字符串 我的字符串类似于1 2 3 1 4 1并可以分为ID Qty 这是我看到的代码 string li

随机推荐

  • Android取消点击效果,Android中如何取消listview的点击效果

    Android中如何取消listview的点击效果 在xml文件里面有listselecter的属性引用 android layout width match parent android layout height wrap conten
  • 【3D游戏基础】蒙皮骨骼动画与骨架

    效果 目标 画出蒙皮动画的骨架 视频 https www bilibili com video BV1pM411m7Yw PPT https zfxdvouj61 feishu cn file boxcnwgESO6zdQetO7oNhKb
  • vant Cascader 级联选择 异步加载

  • .suo介绍

    suo suo是一种文件的格式 suo 解决方案用户选项 记录所有将与解决方案建立关联的选项 以便在每次打开时 它都包含用户所做的自定义设置 比如VS布局以及项目最后编译的而又没有关掉的文件用于下次打开时用 其中 VS布局包括 监视器123
  • Linux性能测试工具

    在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具 包括CPU RAM ROM Cache net等性能测试 lmbench 测试工具 这个工具集中包含以下几种测试工具 我们主要使用到bw
  • 织梦DedeCMS移动站的搜索功能实现方法

    很早之前在做博客的时候 就考虑到把搜索功能在移动端实现 初略的做完后 发现移动端总是会跳转到pc模版 很不友好 前几天 刚好有时间就把这个功能给实现了 其实很简单 接下来放出教程 一 复制 plus search php文件 打开PC端的文
  • ClickHouse之单表多表查询优化

    文章目录 1 本文简介 2 单表查询优化 1 Prewhere 替代 where 2 数据采样 3 指定select字段查询与分区裁剪 4 orderby结合 where limit 5 避免构建虚拟列 6 uniqCombined 替代
  • Maven Helper mvn项目冲突如何解决

    一般用这款插件来查看maven的依赖树 一 安装 File gt setting gt Plugins gt 在搜索框中填写Maven Helper然后搜索 单击Install按钮进行安装 装完重启IDE 二 使用 当Maven Helpe
  • 使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 BP神经网络模型是目前应用最为广泛神经网络
  • Unity 自定义鼠标样式

    using System Collections using System Collections Generic using Framework using UnityEngine
  • BCryptPasswordEncoder的matches方法返回false

    用BCryptPasswordEncoder 做加密 在判断时要用该对象的matches方法 第一个参数为明文 第二个参数才是密文 public static void main String args BCryptPasswordEnco
  • 欧启标O老师STM32课程笔记(二)——蜂鸣器发声

    1 硬件原理 下图为蜂鸣器的电路图 分析这个电路 想让蜂鸣器发声 则需要有电流流过蜂鸣器 当BEEP 即PB8 为高电平时 三极管导通 电流流过蜂鸣器 蜂鸣器发声 反之 当BEEP 即PB8 为低电平时 三极管截止 蜂鸣器不发声 所以控制蜂
  • Rxjava参考文档

    https mcxiaoke gitbooks io rxdocs content operators Timer html
  • lua动态链接库(luaopen_*函数的使用)

    lua中使用c动态库 像luacjson 支持unicode luasocket 都是以动态链接库的形式在lua中使用的 至于怎么写这些动态链接库很少有教程说到 下面我就说说如何把c文件编译成动态库 首先 假设需要在lua中调用一个在c中实
  • 第二章 组合逻辑设计

    第二章 组合逻辑设计 1 卡诺图化简 1 1 必须是偶数项化简 因为卡诺图只有相邻格可以消除一个项 1 2 积之和形式的化简 消除相邻的1项 得到f 1 3 和之积形式的化简 消除相邻的0项 得到f 的积之和形式 然后再通过狄摩根定律转换成
  • python 按照行取平均值补齐缺失数据

    import pandas as pd 根据行来求平均值 def fill NAN filePath r E study python 0819 filled meter 500 csv df0 pd read csv filePath e
  • 线程池参数配置与Linux CPU

    1 线程池核心线程数配置 1 核心线程计算 计算密集型 cpu的个数 1 IO密集型 2 cpu个数 1 2 linux查看cpu核数 查看物理CPU个数 cat proc cpuinfo grep physical id sort uni
  • Educoder--Java高级特性 - 多线程基础(2)常用函数

    注意啦 这期的复制又恢复正常了 第一题 有三种原因可以导致线程不能运行 它们是 A 等待 B 阻塞 C 休眠 D 挂起及由于I O操作而阻塞 Java语言中提供了一个 线程 自动回收动态分配的内存 A 异步 B 消费者 C 守护 D 垃圾收
  • 字符串截取大全

    C 几个经常用到的字符串的截取 string str 123abc456 int i 3 1 取字符串的前i个字符 str str Substring 0 i or str str Remove i str Length i 2 去掉字符串
  • [C语言]猜数字

    本文章为c语言猜数字小游戏的教学 设计思路 目录 1 菜单的创建 2 猜数字的实现 3 完整代码 1 菜单的创建 先设计一个类似菜单的界面 供选择来实现游戏或退出 void menu printf n printf 猜数字 n printf