【C语言训练题库】扫雷->简单小游戏!

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

目录

1. 题目

2. 解析

3. 代码

4. 小结


1. 题目

小sun上课的时候非常喜欢玩扫雷。他现小sun有一个初始的雷矩阵,他希望你帮他生成一个扫雷矩阵。

扫雷矩阵的每一行每一列都是一个数字,每个数字的含义是与当前位置相邻的8个方向中,有多少个雷(在下图中,雷用*表示);如果当前位置就是雷的话,仍输出一个*。

比如初始的雷矩阵如下:

....

..**

*.*.

.*.*

对应的数字矩阵为:

0122

13**

 *4*4

2*3* 

 例:

输入:

4 4
....
..**
*.*.
.*.*

输出:

0122
13**
*4*4
2*3*

2. 解析

1. 由于输入的都是一些特殊字符,如:‘ * ’  ‘ . ’,但在scanf () 函数连续输出字符时,换行符‘ \n ’ 会被scanf () 函数读取,故需要用 getchar () 来读取换行符 ‘ \n ’ ,更详细的可参考-->getchar() 替scanf () 函数读取换行符 博客

2. 由于我们要统计雷的数量,所以在初始化时,要往外多一行,即:

3. 代码

#include <stdio.h>


int Cheak_min(int arr[1000][1000], int i, int j)//找雷
{
	return (arr[i - 1][j - 1] + arr[i][j - 1] + arr[i + 1][j - 1] +
		arr[i - 1][j] + arr[i][j] + arr[i + 1][j] +
		arr[i - 1][j + 1] + arr[i][j + 1] + arr[i + 1][j + 1]);
}

int main()
{
	int n = 0;
	int m = 0;
	int arr[1000][1000] = { 0 };
	char ch = 0;
	scanf("%d %d", &n, &m);
	for (int i = 1; i <= n; i++)   //i=1,多初始化了一行
	{
		getchar();//读取换行符'\n'
		for (int j = 1; j <= m; j++)//j=1,多初始化了一列
		{
			scanf("%c", &ch);
			if (ch == '*')    //换元的思想,把雷都设为数字 1
				arr[i][j] = 1;
			else
				arr[i][j] = 0;
		}
	}
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			if (arr[i][j] == 1)//判断
				printf("*");
			else
				printf("%d", Cheak_min(arr, i, j));  //找周围雷的个数
		}
		printf("\n");
	}
	return 0;
}

4. 小结

 以上就是关于扫雷的内容了,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【STREAMPARK】streampark构建运行git应用

1、新建项目 2、填写git 信息 包含地址 账号 密码 以及pom&#xff08;默认读取项目根目录下的pom&#xff09; 3、添加应用 4、填写 要部署的应用的信息 &#xff0c;提交 5、然后构建运行 6、运行失败&#xff0c;查看日志详情&#xff1b;成功&#xff0c;查看应用…

DHCP、FTP

DHCP、FTP DHCP&#xff08;动态主机配置协议&#xff09; 服务器配置好了地址池 192.168.233.10 192.168.233.20 客户端从地址池当中随机获取一个ip地址&#xff0c;ip地址会发生变化&#xff0c;使用服务端提供的ip地址&#xff0c;时间限制&#xff0c;重启之后也会更换。…

对 SQL 说“不”~

开发人员注意&#xff01; 您在当前的应用程序架构中是否面临这些问题&#xff1f; 对 SQL 数据库的高吞吐量。SQL 数据库中的瓶颈。 内存数据存储将是解决问题的方案。Redis 是市场上最受欢迎的内存数据存储和缓存选项。Redis 拥有广泛的生态系统&#xff0c;因为主要科技巨…

二,几何相交-5,BO算法分析--(1)正确性

也就是说&#xff0c;BO算法有没有可能误报或者漏报&#xff1f; 一&#xff0c;为什么不会误报&#xff1f; 因为两条线段从不相邻到相邻&#xff0c;或者其中一条线段不存在到相邻&#xff0c;都会进行一次相交测试。所以不会误报。 二&#xff0c;为什么不会漏报&#xff1…

文件夹如何加密码全攻略,5个文件夹加密方法新手也能学

文件夹如何加密码&#xff1f;在这个互联网时代&#xff0c;隐私保护越来越受到大家的重视。我们在日常工作中&#xff0c;有时候会接触一些比较重要的文件&#xff0c;为了不让这些文件信息被泄露&#xff0c;所以我们可以给文件夹设置密码保护。那要怎么给文件夹设置密码呢&a…

达人邀约软件工具,券小妹邀约软件,支持商家版团长版,一键邀约达人工具

达人邀约软件&#xff1a;抖音商家、团长及快手商家的高效助手&#xff01; 券小妹邀约工具是一款专为抖音商家、团长和快手商家设计的达人邀约工具&#xff0c;主要是为了简化邀约、沟通和报名流程。 券小妹邀约工具的主要功能有&#xff1a; 1. 一键批量邀约达人 2. 批量发…

一个州凭什么引领美国量子技术革新?

不要低估一个州&#xff0c;它可能美国量子技术发展的中流砥柱。 科罗拉多州&#xff0c;产生了四位量子科学领域的诺贝尔奖得主&#xff0c;汇聚了3000多名量子科技精英&#xff0c;更拥有多家顶级量子初创公司&#xff0c;例如离子阱量子计算公司Quantinuum、原子技术公司At…

从零开始实现自己的串口调试助手(5) -实现HEX显示/发送/接收

实现HEX显示: HEX 显示 -- 其实就是 十六进制显示 --> a - 97(10) --> 61(16) 添加槽函数(bool): 实现槽函数: 注意: 注意QString 没有处理HEX显示的相关API 需要使用 toUtf-8 来 转换位QByteArry 类型&#xff0c; 利用其中的API 来处理HEX格式(toHex fromHex) vo…

Python 机器学习 基础 之 【实战案例】新闻内容分类实战

Python 机器学习 基础 之 【实战案例】新闻内容分类实战 目录 Python 机器学习 基础 之 【实战案例】新闻内容分类实战 一、简单介绍 二、新闻内容分类实战 三、数据准备 四、分词与清洗工作 1、读取数据 2、使用 jieba 分词器进行分词&#xff0c;使用 Pandas 创建Data…

【网络层】IP因特网协议解析

文章目录 IP报文结构分片TTL&#xff1a;time to live 生存时间 &#xff08;生命值&#xff09;Protocol 协议 网络层位于数据链路层与传输层之间。网络层中包含了许多协议&#xff0c;其中最为重要的协议是IP协议。网络层提供IP路由功能。 IP报文结构 版本version&#xff1…

20240604将OK3588-C的核心板刷机Buildroot之后强制横屏

20240604将OK3588-C的核心板刷机Buildroot之后强制横屏 2024/6/4 17:13 viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/boot/dts/rockchip$ grep dsi0 . -R ./Makefile:dtb-$(CONFIG_ARCH_ROCKCHIP) rk3568m-serdes-evb-display-dsi…

【玩转C语言】第一讲--->C语言概念

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 引言&#xff1a; 1. C语言是什么 2. C语言的辉煌历史 3. 第一个C语言程序 4. main()函数 5. printf() 函数 6. 库函数 6.1 库函数概念 7. 关键字介绍 …

巨详细Linux安装MySQL

巨详细Linux安装MySQL 1、查看是否有自带数据库或残留数据库信息1.1检查残留mysql1.2检查并删除残留mysql依赖1.3检查是否自带mariadb库 2、下载所需MySQL版本&#xff0c;上传至系统指定位置2.1创建目录2.2下载MySQL压缩包 3、安装MySQL3.1创建目录3.2解压mysql压缩包3.3安装解…

Kubernetes——Ingress详解

目录 前言——Service策略的作用 1.外部访问方案 2.使用场景和限制 2.1NodePort 2.2LoadBalancer 2.3externalIPs 2.4Ingress 3.Ingress如何实现对外服务 4.LB和Ingress结合起来实现对外服务的过程 一、Ingress 1.定义 2.组成 3.工作原理 4.总结 二、部署Nginx-I…

clickhouse学习笔记(二)数据类型

目录 一、基础数据类型 1、整数类型 2、浮点数类型 3、布尔类型 4、字符串和固定字符串 5、日期和时间类型 6、创建基础数据类型的建表语句及插入语句 二、复合数据类型 1、数组 2、元组 3、枚举类型 4、嵌套数据结构 5、Map 三、特殊数据类型 1、低基数编码&…

SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(一)

功能需求 在 SwiftUI 的开发中,我们往往需要借助底层 UIKit 的“上帝之手”来进一步实现额外的定制功能。比如,在可拖放(Dragable)SwiftUI 的实现中,会缺失一些关键的回调方法让我们这些秃头码农们“欲哭无泪” 如上图所示,我们在拖放取消时将界面中的一切改变都恢复如初…

【调试笔记-20240604-Linux-为 OpenWrt-23.05 添加自己的 feed 软件包】

调试笔记-系列文章目录 调试笔记-20240604-Linux-为 OpenWrt-23.05 添加自己的 feed 软件包 文章目录 调试笔记-系列文章目录调试笔记-20240604-Linux-为 OpenWrt-23.05 添加自己的 feed 软件包 前言一、调试环境操作系统&#xff1a;Ubuntu 22.04.4 LTS编译环境调试目标 二、…

《python》poetry install下载缓慢,网络问题断开连接--poetry换源镜像下载+国内镜像

在使用打包工具poetry进行打包的是出现了一个问题就是&#xff0c;在使用poetry进行打包的时候出现了&#xff0c;连接断开这样的问题&#xff0c;这个问题是可以通过换源&#xff0c;通过国内的镜像来解决这个问题就可以了。 找到项目中的pyoroject。toml文件这个文件中写了一…

ESP8266 01sWiFi模块保姆级教程 烧录和联网,连接华为云

前言 写在前面。 这个esp01s联网真的是折磨人啊&#xff0c;浪费了我三四天的时间&#xff0c;网上各种教程叫天天不灵&#xff0c;叫地地不灵&#xff0c;所以才有了这篇教程&#xff0c;致力于帮助像我一样的小白少踩坑&#xff0c;我可以说是把能踩的坑都塌了一遍。 烧录…

Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制

多环境开发(yaml文件版) 我们在自己的开发中是自己环境 测试 生产的环境都不同 多环境分为 两个步骤 设置环境 生产环境 开发环境 测试环境 手搓三个环境 设置应用环境 应用pro配置 # 应用环境 spring:profiles:active: pro--- # 设置环境 # 生产环境 spring:profiles: p…