[c]扫雷

news2024/11/23 19:39:57

题目描述

扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。

玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。

现在给出n行m列的雷区中的地雷分布,请计算出每个非地雷格周围的地雷格数。

注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。

输入描述:

第一行输入两个整数n,m ,分别表示雷区的行数和列数。

接下来n行,每行m个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。

1<=n,m<=100

输出描述:

输出包含n行,每行m个字符,描述整个雷区。用‘*’表示地雷格,用周围的地雷个数表示非地雷格。相邻字符之间无分隔符

示例1

输入

3 3
*??
???
?*?

输出

*10
221
1*1

题目很容易理解,就是判断字符数组元素周围*元素的个数

下面附上代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n, m;
	int count = 0;
	char s[100][100] = { 0 };
	scanf("%d %d", &n, &m);
	getchar();
	for (int i = 1; i <= n; i++)
	{
		for (int k = 1; k <= m; k++)
		{
			s[i][k] = getchar();
		}
		getchar();
	}
	for (int i = 1; i <= n; i++)
	{
		for (int k = 1; k <= m; k++)
		{
            count=0;
			if (s[i][k] == '*')
			{
				printf("*");
			}
			else
			{
				if (s[i - 1][k] == '*' )
					count++;
				if (s[i + 1][k] == '*')
					count++;
				if (s[i][k - 1] == '*')
					count++;
				if (s[i][k + 1] == '*')
					count++;
				if (s[i - 1][k - 1] == '*' )
					count++;
				if (s[i - 1][k + 1] == '*')
					count++;
				if (s[i + 1][k + 1] == '*')
					count++;
				if (s[i + 1][k -1] == '*')
					count++;
                printf("%d", count);
			}
		}
		printf("\n");;
	}
	return 0;
}

注意每输入一组需要用一次getchar,来读取输入完的回车,新手可能会遇到输入时候程序直接结束了,明明还没有输完,就打印结果了,这种情况可能就是getchar没有合理利用

我们可以输入完进行调试,看看创建的字符数组中是不是自己想要的字符

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

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

相关文章

哈希三道题

两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意…

向量的点乘

向量的点乘 向量的点乘 a * b可以使用点乘获取两个向量的前后位置&#xff0c;如下图所示案例一&#xff08;案例中将y去掉&#xff0c;相当于俯视坐标系之后x&#xff0c;z&#xff09;&#xff1a;此时判定这里a是在b的前面的位置&#xff0c;为什么这么说是因为cos曲线告诉我…

Qt Creator可视化交互界面exe快速入门1

Qt的安装链接&#xff1a;Index of /archive/qt 5.14版本之前都是可以直接离线安装&#xff0c;即下载完整安装包之后在本地安装。 最新及5,15版本之后的都不支持直接的离线安装了&#xff0c;需要通过下载器来进行安装。下载地址&#xff1a;Index of /official_releases/onl…

面试秘籍 | 测试工程师的简历该怎么写?

作为软件测试的垂直领域深耕者&#xff0c;面试或者被面试都是常有的事&#xff0c;可是不管是啥&#xff0c;总和简历有着理不清的关系&#xff0c;面试官要通过简历了解面试者的基本信息、过往经历等&#xff0c;面试者希望通过简历把自己最好的一面体现给面试官&#xff0c;…

重要通知,事关校营宝新老用户,敬请知悉!

尊敬的校营宝用户&#xff0c;感谢您选择校营宝培训学校管理系统&#xff0c;我们的发展离不开您的支持鼓励&#xff0c;只要您选择校营宝&#xff0c;就是我们的终身客户&#xff0c;我们承诺给您终身的售后咨询服务&#xff01; 校营宝培训学校管理系统是面向校外艺术类培训…

【C++】开源:FLTK图形界面库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍FLTK图形界面库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0…

交友系统设计:哪种地理空间邻近算法更快?

小熊学Java&#xff1a;https://javaxiaobear.cn 交友与婚恋是人们最基本的需求之一。随着互联网时代的不断发展&#xff0c;移动社交软件已经成为了人们生活中必不可少的一部分。然而&#xff0c;熟人社交并不能完全满足年轻人的社交与情感需求&#xff0c;于是陌生人交友平台…

四. 基于环视Camera的BEV感知算法-BEVDepth

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

Linux:jumpserver介绍(1)

官方网站 JumpServer - 开源堡垒机 - 官网https://www.jumpserver.org/ JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产&#xff0c;实现事前授权、事中监察、事后审计&…

8、SpringCloud高频面试题-版本1

1、SpringCloud组件有哪些 SpringCloud 是一系列框架的有序集合。它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用 SpringBoot 的开发风格做到一键启…

计算机视觉基础(11)——语义分割和实例分割

前言 在这节课&#xff0c;我们将学习语义分割和实例分割。在语义分割中&#xff0c;我们需要重点掌握语义分割的概念、常用数据集、评价指标&#xff08;IoU&#xff09;以及经典的语义分割方法&#xff08;Deeplab系列&#xff09;&#xff1b;在实例分割中&#xff0c;需要知…

基于Springboot的宠物领养系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的宠物领养系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

vmware安装中标麒麟高级服务器操作系统 V7.0

vmware安装中标麒麟高级服务器操作系统 V7.0 1、下载中标麒麟高级服务器操作系统 V7.0镜像2、安装中标麒麟高级服务器操作系统 V7.02.2、安装虚拟机 1、下载中标麒麟高级服务器操作系统 V7.0镜像 官方提供使用通道 访问官网 链接: https://www.kylinos.cn/ 下拉到页面最底部 点…

Qt 多媒体音频模拟按钮发音(音视频启动)

## 项目演示 平台:windows或者ubuntu 要求:平台需要支持音频播放功能 文件格式:.wav 可以使用剪映生成,音频部分,我这里是简短的音乐 # Qt 多媒体简介 Qt QSound是Qt框架中的一个类,用于播放音频文件。它可以在Qt应用程序中实现简单的音频播放功能,包括播放、暂停和…

宜春万申智能装备携粉体自动化产线解决方案盛装亮相2024济南生物发酵展

宜春万申智能装备股份有限公司受邀盛装亮相2024第12届济南国际生物发酵展 展位号&#xff1a;1号馆A16-2展位 2024第12届国际生物发酵产品与技术装备展览会&#xff08;济南&#xff09;于3月5-7日在山东国际会展中心盛大召开&#xff0c;全方面展示&#xff1a;生物发酵、生…

【图文教程】windows 下 MongoDB 介绍下载安装配置

文章目录 介绍MySQL 之间的区别和适用场景差异数据模型&#xff1a;查询语言&#xff1a;可扩展性&#xff1a;数据一致性&#xff1a; 下载安装环境变量配置 介绍 MongoDB 是一种开源的、面向文档的 NoSQL 数据库管理系统。它使用灵活的文档模型来存储数据&#xff0c;这意味…

【项目管理】CMMI-需求跟踪矩阵模版

需求菜单/功能模块需求名称需求变更类型&#xff08;新增、修改&#xff09;需求状态&#xff08;已建议、已批准、已设计、已实现、已验证、已删除&#xff09;优先级&#xff08;高、中、低&#xff09;软件需求&#xff08;工作产品、章节号&#xff09;概要设计&#xff08…

【计算机网络】网络层——IP协议

目录 一. 基本概念 二. 协议报文格式 三. 网段划分 1. 第一次划分 2. CIDR方案 3. 特殊的IP地址 四. IP地址不足 1. 私有IP和公网IP 2. DHCP协议 3. 路由器 4. NAT技术 内网穿透(NAT穿透) 五. 路由转发 路由表生成算法 结束语 一. 基本概念 IP指网络互连协议…

浅谈springboot整合ganymed-ssh2远程访问linux

环境介绍 技术栈 springbootmybatis-plusmysqlganymed-ssh2 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis-plus 3.5.3.2 SSH(远程连接工具)连接原理&#xff1a;ssh服务是一个守护进程(demon)&#xff0c;系统后台监听客户…

【leetcode100-019】【矩阵】螺旋矩阵

【题干】 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 【思路】 不难注意到&#xff0c;每进行一次转向&#xff0c;都有一行/列被输出&#xff08;并失效&#xff09;&#xff1b;既然已经失效&#xff0c;那我…