题解
2025-09-06 21:12:42
发布于:浙江
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
int b[105][105];
int main()
{
	int n,m;
	cin>>n>>m;//输出矩阵的长和宽
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];//输出矩阵
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			int k=0;
			if(a[i][j]=='?')//判断是否非地雷格,如果是就需要改成数字
			{
				if(a[i+1][j]=='*')//下
				{
					k++;
				}
				if(a[i-1][j]=='*')//上
				{
					k++;
				}
				if(a[i][j+1]=='*')//右
				{
					k++;
				}
				if(a[i][j-1]=='*')//左
				{
					k++;
				}
				if(a[i+1][j+1]=='*')//右下
				{
					k++;
				}
				if(a[i-1][j+1]=='*')//右上
				{
					k++;
				}
				if(a[i+1][j-1]=='*')//左下
				{
					k++;
				}
				if(a[i-1][j-1]=='*')//左上
				{
					k++;
				}
				b[i][j]=k;//将四周的地雷数量赋值给b[i][j]
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]!='*')//判断是否为地雷,是就输出*不是输出四周的地雷数
			cout<<b[i][j];
			else
			cout<<"*";
		}
		cout<<"\n";
	}
	return 0;
}
方位可能会写错,有错@我就好了
这里空空如也







有帮助,赞一个