C语言小游戏——猜数字

news2024/10/7 8:27:51

猜数字游戏是一种简单而有趣的游戏,玩家需要根据提示猜出一个随机数。
在这里插入图片描述

//游戏菜单
void menu()
{
	printf("*********************\n");
	printf("*       1.play      *\n");
	printf("*       0.exit      *\n");
	printf("*********************\n");
}

这是一个使用C语言编写的函数,用于显示一个简单的游戏菜单,其中包含两个选项:“play"和"exit”。

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

这是一个C语言标准库函数的调用,用于生成随机数。在程序中调用该函数之前,必须先包含头文件 time.h 和 stdlib.h。

该函数的作用是为随机数生成器设置一个种子,以便生成不同的随机数序列。time(NULL) 返回当前时间的秒数,因此可以将其用作种子,以获得更随机的结果。

具体来说,srand() 函数需要传入一个 unsigned int 类型的参数作为种子。通常可以使用 time(NULL) 函数返回的时间值作为种子,因为每次程序运行时时间值都不同,从而生成的随机数也不同。因此,该函数通常在程序的开始处调用一次,以确保生成的随机数序列具有足够的随机性。

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

这是一个 C 语言中的 do-while 循环结构,用于实现一个简单的游戏菜单。以下是代码的解释:

首先,调用 menu() 函数显示游戏菜单。
然后,使用 printf() 函数提示用户选择,并使用 scanf() 函数从标准输入流中读取用户的选择,并将其存储在 input 变量中。
接着,使用 switch 语句根据用户的选择执行相应的操作。如果用户选择了 1,则调用 game() 函数开始游戏;如果用户选择了 0,则输出一条消息表示游戏已退出;否则输出一条错误消息并提示用户重新选择。
最后,使用 do-while 循环结构,重复执行上述步骤,直到用户选择了退出游戏(即 input 的值为 0)。
在循环的结尾,程序将退出游戏并结束运行。

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

这是一个 C 语言函数,用于实现一个简单的猜数字游戏。以下是代码的解释:

首先,使用 rand() 函数生成一个 1~100 之间的随机整数,将其存储在 ret 变量中。
然后,使用 while 循环结构来实现游戏的核心逻辑。在每一轮循环中,使用 printf() 函数提示用户输入猜测的数字,并使用 scanf() 函数从标准输入流中读取用户的输入,并将其存储在 num 变量中。
接着,使用 if-else 结构判断用户的猜测与随机数 ret 的大小关系,并输出相应的提示信息。如果猜测的数字比随机数小,则提示用户猜小了;如果猜测的数字比随机数大,则提示用户猜大了;如果猜测的数字与随机数相等,则输出一条恭喜信息,并使用 break 语句跳出循环。
最后,使用 game() 函数结束,返回到主函数中。
该函数实现了一个简单的猜数字游戏,其中随机数的生成使用了 rand() 函数,循环结构和条件语句则实现了游戏的核心逻辑。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
void game()
{
	int ret = rand() % 100 + 1;
	int num = 0;
	/*printf("%d\n", ret);*/
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &num);
		if (num < ret)
		{
			printf("猜小了\n");
		}
		else if (num > ret)
		{
			printf("猜大了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
	}
}
//游戏菜单
void menu()
{
	printf("*********************\n");
	printf("*       1.play      *\n");
	printf("*       0.exit      *\n");
	printf("*********************\n");
}
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;
}

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

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

相关文章

一道北大强基题背后的故事(五)——解数学题的数学模型是什么?

早点关注我&#xff0c;精彩不错过&#xff01; 上回说到&#xff0c;数学之美&#xff0c;美在作为一个工具的通用性&#xff0c;艺术追求和思维游戏&#xff0c;相关内容请戳&#xff1a; 一道北大强基题背后的故事&#xff08;四&#xff09;——数学之美&#xff0c;美在哪…

详解sentinel使用

目录 1.概述 2.下载安装 3.应用托管 4.流量控制 4.1.流控规则 4.2.流控模式 4.2.1.直接模式 4.2.2.关联模式 4.2.3.链路模式 4.3.流控效果 4.3.1.预热 4.3.2.排队等待 5.降级 5.1.降级规则 5.2.降级策略 5.2.1.RT 5.2.2.异常比例 5.2.3.异常数 1.概述 senti…

CentOS7设置nginx服务开机自启【开机自启】

方法一&#xff1a;使用Systemd 1.创建服务单元文件 sudo vi /etc/systemd/system/nginx.service2.编辑配置文件 [Unit] DescriptionThe NGINX HTTP and reverse proxy server Aftersyslog.target network.target[Service] Typeforking ExecStartPre/usr/sbin/nginx -t Exec…

[数据结构初阶]双链表

目录 双链表定义 初始化 创建节点 尾插 ​编辑 尾删 头插 头删 打印 查找 pos插入 头插复用 尾插复用 pos删除 头删复用 尾删复用 判空 size 销毁 完整代码 前面我们学习了单链表&#xff0c;但按照带头不带头(哨兵)和循环不循环我们可以有四种单链表&#…

知识蒸馏学习记录

最近在学习降噪处理不良天气的算法过程中&#xff0c;接触到了知识蒸馏&#xff0c;该算法作为一个深度学习通用算法&#xff0c;不仅广泛应用在自然语言处理方面&#xff0c;在计算机视觉等领域也广受追捧。 概要 简单来说&#xff0c;知识蒸馏就是将一个大的教师网络萃取到…

Nginx虚拟机主机

Nginx虚拟机主机 简述 虚拟主机是一种特殊软硬件技术&#xff0c;将网络上每一台计算机分成多个虚拟主机&#xff0c;每个虚拟主机可独立对外提供www服务&#xff0c;实现一台主机对外提供多个web服务&#xff0c;每个虚拟主机之间独立&#xff0c;互不影响。 配置位置 既可以在…

基于深度学习的高精度塑料瓶检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度塑料瓶检测识别系统可用于日常生活中或野外来检测与定位塑料瓶目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的塑料瓶目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…

自动化面试题5

一、Modbus通信485/232/422的优缺点。 &#xff08;1&#xff09;RS232和RS422是全双工的&#xff0c;RS485是半双工的。 &#xff08;2&#xff09;RS485与RS232仅仅是通讯的物理协议&#xff08;即接口标准&#xff09;有区别&#xff0c;RS485是差分传输方式&#xff0c;R…

Spring6 AOT 提前编译

文章目录 1、AOT概述1.1、JIT与AOT的区别1.2、Graalvm1.3、Native Image 2、Native Image构建过程2.1、GraalVM安装&#xff08;1&#xff09;下载GraalVM&#xff08;2&#xff09;配置环境变量&#xff08;3&#xff09;安装native-image插件 2.2、安装C的编译环境&#xff0…

法规标准-ISO 23374标准解读

ISO 23374是做什么的&#xff1f; ISO 23374全名为智能交通系统-自动代客泊车系统(AVPS) 第一部分&#xff1a;系统框架、自动驾驶要求和通信接口&#xff0c;针对AVPS的系统框架及功能要求、通信接口进行介绍&#xff0c;由于通信接口涉及功能实现&#xff0c;但此处介绍较为…

ubuntu20.04 磁盘故障,然后重装22.04

ubuntu20.04 磁盘故障&#xff0c;然后重装22.04 重装原因开机自启动不需要使用sudo 软件截图 flameshot输入法 fcitx5 重装原因 编译程序报错 /usr/include/x86_64-linux-gnu/bits/signum.h:26:10: fatal error: /usr/include/x86_64-linux-gnu/bits/signum-generic.h: 结构需…

VUE L ∠脚手架 配置代理 ⑩⑧

目录 文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持✨ V u e j s Vuejs Vuejs初识 V u e C L I VueCLI VueCLI C L I CLI CLI V u e Vue Vue配置代理 C L I CLI CLI配置方法一 C L I CLI CLI配置方法二 C L I CLI CLI V u …

经典文献阅读之--VIP-SLAM(紧耦合RGB-D视觉惯性平面SLAM)

0. 简介 现有的视觉SLAM很多的算法让仍然是基于特征提取的方法来完成地图的建立&#xff0c;而RGB-D传感器的算法仍然是主要基于稀疏点的SLAM系统&#xff0c;这就导致在构建稠密点云地图的时候需要保持大量的地图点来建模环境。大量的地图点给我们带来了很高的计算复杂性&…

Python 进阶(二):Python使用ORM框架peewee操作MySQL数据库

Python使用ORM框架peewee操作数据库 前言1. 安装Peewee库并初始化数据库2. 创建数据库连接3. 定义数据表模型类4. 连接数据库并创建表5. 操作数据库5.1 插入数据5.2 查询数据5.3 更新数据5.4 删除数据 6. 聚合查询 前言 本文基于MySQL8.x版本的学习&#xff0c;python版本基于…

美客多、Newegg卖家如何提高店铺销量?测评自养号的重要性

作为美客多和Newegg平台上的卖家&#xff0c;提高店铺销量是卖家取得商业成功的关键。珑哥今天来说一些有效的策略&#xff0c;帮助卖家增加销售额并提升店铺的知名度和竞争力。 优化产品页面&#xff1a; 优秀的产品页面可以吸引更多买家并促进销售。确保产品标题准确、吸引人…

经典文献阅读之--NICE-SLAM(SLAM的神经隐含可扩展编码)

0. 简介 对于深度学习而言&#xff0c;NeRF一定是最近两年最火的工作之一了&#xff0c;**NeRF&#xff08;Neural Radiance Fields&#xff09;**是最早在2020年ECCV会议上的Best Paper&#xff0c;其将隐式表达推上了一个新的高度&#xff0c;仅用 2D 的 posed images 作为监…

stm32配置基本定时功能

Clock Source参数说明 内部时钟源是由STM32F103芯片内部的RC振荡器提供的。它的频率为8MHz&#xff0c;可以通过PLL倍频器进行倍频&#xff0c;最高可达到72MHz。 Internal clock Division No Division&#xff1a;不分频&#xff0c;即系统时钟直接作为时钟信号。Divided by 2…

ModaHub AI模型社区:向量数据库CPU 版 Milvus和GPU 版 Milvus 版本比较

目录 CPU 版 Milvus 版本比较 概述 CPU 版 Milvus 支持的索引类型 浮点型向量 二值型向量 GPU 版 Milvus 版本比较 概述 GPU 版 Milvus 支持的索引类型 浮点型向量 二值型向量 CPU 版 Milvus 版本比较 概述 Milvus 提供两个发行版本&#xff1a;CPU 版本和 GPU 版本…

学生成绩管理系统(Python+数据库)

文章目录 前言MySQL部分1. 导入信息2. 演示说明 Python程序设计部分1. 连接数据库2. 登录界面3. 注册界面4. 主界面5. 查询信息6. 修改密码7. 成绩分析7.1 通过学号查询成绩7.2 通过课程号查询成绩 7. 主函数 尾声 前言 用Python和数据库一起实现了一个简单的学生成绩管理系统…

GPDB-内核特性-UDP流量控制

GPDB-内核特性-UDP流量控制 GPDB是在开源PostgreSQL基础上&#xff0c;采用MPP架构的关系型分布式数据库&#xff0c;具有强大的大规模数据分析任务处理能力。采用Shared-Nothing架构&#xff0c;整个集群由多个数据节点&#xff08;segment&#xff09;和控制节点&#xff08;…