C语言-数字爆炸游戏

news2024/9/21 12:39:37

 问题:

        你好,欢迎来到数字爆炸,系统随机生成一个数字,猜大了,提示猜大了,猜小了,提示猜小了。

思路:

  1. 先写游戏大概思路
  2. 首先,会有菜单吧,所以先写一个菜单函数,显示菜单的内容。
  3. 然后选择菜单中的选项,不同的选项,对应不同的功能,因此这个用switch实现最好。
  4. 而想要一直玩,选择退出才结束,则,来一个do while循环,因为先出菜单,再选择,所以选择do while;
  5. 如果选择进入游戏,则进入游戏函数,
  6. 游戏函数开始,随机生成一个数字,rand()函数为随机生成数字。但由于范围过大,我们想生成0到100内的数字,给随机生成的数字取模(即取余数)%100,这个所求的肯定在0-99内,因为大于100的,我都出除走了。因为想出现100,所以再+1.因此总体语句为:int ret = rand() % 100 + 1;
  7. 但rand函数要求需要一个随机数的起始地址。这时候需要用到srand()函数,他会提供一个随机数的起始地址,保证不会乱跳。而srand()函数内部,需要提供一个一直变化的量,而电脑时间就是一直变的,因此,用time(NULL)函数最合适,又因为time返回time_t类型,即long long类型,但srand需要unsigned int类型,所以给time强制转化即srand((unsigned int)time(NULL));这里需要注意,srand提供的随机数起始位置,调用一次就好,因此在主函数开始,调用即可。
  8. 之后便进行游戏即可。

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
	printf("********************\n");
	printf("1-开始游戏\n");
	printf("2-退出\n");
	printf("********************\n");
}
void game()
{
	int ret = rand()%100+1;
	printf("%d\n", ret);
	Sleep(50);
	system("cls");
	int n = 0;
	while (1)
	{
		printf("请输入你猜的数字\n");
		scanf("%d", &n);
		if (n == ret)
		{
			printf("我靠,牛皮,猜对了\n");
			printf("\n还想再来一局不,搏一搏,单车变摩托\n");
			printf("再来一局(1/0):");
			int choose = 0;
			scanf("%d", &choose);
			if (choose == 1)
			{
				game();
			}

			break;
		}
		else if (n < ret)
			printf("猜小了啊,老铁\n");
		else if (n > ret)
			printf("猜大了,铁子\n");
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择选项\n");
		scanf("%d", &input);
		
		switch (input)
		{
			case 1:
				game();
				break;
			case 2:
				break;
			default:
				printf("选项不存在,请重新输入\n");
				break;
		}
	} while (input != 2);
}

结果如下:

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

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

相关文章

服务启动后能ping通但无法访问

近期业务需要&#xff0c;重启了服务器&#xff08;centos 7.4&#xff09;&#xff0c;但是各类服务启动后&#xff0c;仍然无法访问&#xff0c;Nginx的白页面都访问不到&#xff0c;能ping通&#xff0c;nslookup 域名解析也没问题&#xff0c;考虑是防火墙 -- 查看防火墙启…

《2023 信创软件品牌影响力报告》发布!融云入选「信创生态」代表厂商

信创正由试点实践转向全面推广。关注【融云 RongCloud】&#xff0c;了解协同办公平台更多干货。 由于外围环境收紧和国内数字经济高速发展等原因&#xff0c;信创产业在顶层战略的指引推动下蓬勃发展&#xff0c;相关政策有力促进了芯片、操作系统、数据库、办公软件、工业软…

jquery html页面先加载内容过几秒后显示数据

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;推荐专栏&#xff1a;点击进入查看 &a…

文心一言 VS 讯飞星火 VS chatgpt (50)-- 算法导论6.2 2题

二、参考过程 MAX-HEAPIFY&#xff0c;写出能够维护相应最小堆的 MIN-HEAPIFY(A&#xff0c;i)的伪代码&#xff0c;并比较 MIN-HEAPIFY 与 MAX-HEAPIFY 的运行时间。 文心一言&#xff1a; MIN-HEAPIFY(A, i)的伪代码如下&#xff1a; 1.将节点i及其子树中的最小元素交换到…

linux定时清理三个月前的应用日志

目录 思路find 命令需要用到 -mtime n 参数 shell脚本三种方法方法一方法二方法三 配置计划任务 思路 要想删除三个月前的日志&#xff0c;先得找到三个月前的日志才行&#xff0c;可以通过 find命令查找。 find 命令 1.find命令基本介绍     find顾名思义就是查找&…

UMS攸信入选福建省知识产权优势企业名单,为企业自主创新体系建设增添新动能!

近日&#xff0c;根据福建省市场监管局办公室《关于组织开展2023年度省知识产权优势企业申报及复核工作的通知》&#xff08;闽市监办〔2023〕11号&#xff09;要求&#xff0c;将拟确认的2023年福建省知识产权优势企业名单予以公示。 攸信技术成功入选该名单&#xff0c;荣获2…

chatgpt赋能python:Python退出主程序:如何正确结束你的Python代码

Python退出主程序&#xff1a;如何正确结束你的Python代码 对于Python编程的初学者来说&#xff0c;经常会遇到一个问题&#xff1a;如何正确退出Python程序&#xff1f;在Python中&#xff0c;有许多种方式可以停止运行Python程序&#xff0c;但不是所有的方法都是相同的。如…

vue 访问本地json数据

如果你的项目中需要模拟下json数据&#xff0c;来看下访问速度&#xff0c;那就参照这个试试吧&#xff0c;首先创建test.josn&#xff0c;放在pulic目录下&#xff0c;见下图 定义js // 文件 prodOrder.jsexport function test(data) {return request({url: http://localhost…

无缝数据转换!使用C++ 实现 Excel文件与CSV之间的相互转换

CSV格式是一种通用的文本文件格式&#xff0c;可在多个应用程序之间共享和使用。相比之下&#xff0c;Excel文件是一种电子表格格式&#xff0c;通常只能在Microsoft Excel中编辑和查看。因此&#xff0c;将Excel文件转换为CSV格式可使数据更方便地在其他应用程序中使用&#x…

Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论 我们使用Linux作为服务器操作系统时&#xff0c;为了达到高并发处理能力&#xff0c;充分利用机器性能&#xff0c;经常会进行一些内核参数的调整优化&#xff0c;但不合理的调整常常也会引起意想不到的其他问题&#x…

Android 冷启动优化的3个小案例

背景 为了提高App的冷启动耗时&#xff0c;除了在常规的业务侧进行耗时代码优化之外&#xff0c;为了进一步缩短启动耗时&#xff0c;需要在纯技术测做一些优化探索&#xff0c;本期我们从类预加载、Retrofit 、ARouter方面进行了进一步的优化。从测试数据上来看&#xff0c;这…

docker创建mysql容器

步骤 引言执行创建命令设置远程访问使用Navicat连接 引言 只要有开发&#xff0c;就要用数据库&#xff0c;mysql是最简单&#xff0c;也是非常好用的数据库&#xff0c;也要学会用docker创建mysql数据库。 执行创建命令 docker run --name mysql\--restartalways\-p 13306:…

每天一点Python——day43

#第四十三天字典的视图操作&#xff1a; ①keys()获取字典中所有的键 ②values()获取字典中所有的值 ③items()获取字典中所有的键值对#如图&#xff1a; #例&#xff1a;获取所有的键 a{哥哥:18,妹妹:16,姐姐:17}#字典创立 ba.keys()#获取后我们存在变量b中&#xff0c;右边的…

【Mysql】索引数据结构深入研究(二)

前言 在这里需要明确的一点是&#xff0c;数据库的引擎InnoDB或者是MyISAM引擎它们是形容数据表的&#xff0c;不是形容数据库的。 另外&#xff1a;文章中提到的索引的数据结构暂且都默认使用BTree InnoDB引擎 InnoDB的索引数据文件有两个&#xff0c;tableName.frm和table…

Redis7【⑦ Redis哨兵(sentinel)】

Redis哨兵 Redis Sentinel&#xff08;哨兵&#xff09;是 Redis 的高可用性解决方案之一&#xff0c;它可以用于监控和管理 Redis 主从复制集群&#xff0c;并在主节点发生故障时自动将从节点升级为新的主节点&#xff0c;从而保证系统的高可用性和可靠性。 Redis Sentinel …

v8-tc39-ecma262:数组push执行了什么?

v8开发文档介绍 v8新特性 tc39-ecma262-push函数执行步骤 上图步骤&#xff0c;解释如下&#xff1a; 如果是对象&#xff0c;则当作对象调用设置该值如果是类数组&#xff0c;则执行类数组调用设置该值如果参数有多个参数&#xff0c;则&#xff1a;如果&#xff0c;参数长度…

golang,OpenGL,计算机图形学(二)

代码仓库 https://github.com/phprao/go-graphic 变换 矩阵操作与向量操作&#xff1a;https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations/ 在OpenGL中&#xff0c;由于某些原因我们通常使用44的变换矩阵&#xff0c;而其中最重要的原因就是大…

uniapp的表单校验方式整理

uniapp的表单校验方式整理 这里我使用的模板为&#xff1a; 第一种&#xff1a; uniapp本身自带表单校验的js文件&#xff0c;代码写的很简洁&#xff0c;也是比较全面的 只要按照规则校验即可&#xff0c;下面是对应的校验代码&#xff1a; /** 数据验证&#xff08;表…

Jenkins 2.4 创建子节点

在 Dashboard > 系统管理 > 节点列表 页面&#xff0c;选择 New Node 按钮&#xff0c;新建节点 windows_10&#xff0c;节点类型选择 固定节点&#xff0c;点击 Create 创建&#xff1a; 将 远程工作目录 设置子节点电脑上的执行工作目录&#xff0c;例如在D盘创建一个 …

Django框架-3

使用admin后台管理数据 创建模型类 模型类&#xff1a;应用中的models.py文件中 from django.db import models# Create your models here. # 模型类必须要继承models.Model class doogs(models.Model):# 属性create_time models.DateTimeField(auto_now_addTrue, verbose_…