[c]扫雷

题目描述

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

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

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

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

输入描述:

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

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

1<=n,m<=100

输出描述:

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

示例1

输入

复制代码
3 3
*??
???
?*?

输出

复制代码
*10
221
1*1

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

下面附上代码

cs 复制代码
#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没有合理利用

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

相关推荐
quantdash_cc17 分钟前
从实时行情到价格观察表:用 Python 和 Pandas 构建策略输入数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
昂好的day1 小时前
VisionMaster 通信模块实战(上):Modbus、TCP 收发、协议组装解析
开发语言·网络·网络协议·tcp/ip·c#
罗湖老棍子1 小时前
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
数据结构·算法·图论·最短路·floyd·最小环
努力实干2 小时前
面向对象设计原则——C++
开发语言·c++·数码相机
NetX行者4 小时前
四语言 Hello World 背后:编译模型与运行时对比
开发语言
stsdddd4 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
CV爱数码4 小时前
论文精读|Learned Primal-Dual:把原始–对偶算法展开成网络
图像处理·算法·计算机视觉·ct·重建·断层扫描
Pin_Qing5 小时前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_962885725 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
yuniko-n5 小时前
【算法】约瑟夫环问题
java·算法