题解
2024-07-27 20:54:12
发布于:广东
2阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
char a[109][109];//地图
vector<pair<int,int>>v {{0,1},{1,0},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}}; //方向数组
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++) { //遍历输出地图
			if(a[i][j]=='*') cout << '*';//遇到地雷,直接输出
			else {
				int sum=0;//存储该点周围地雷的数量
				for(auto it:v) { //遍历方向数组
					int ti=i+it.first,tj=j+it.second;//a[ti][tj]是a[i][j]周围的点
					if(a[ti][tj]=='*') sum++;//a[ti][tj]是地雷
				}
				cout << sum ;//输出该点周围地雷的数量
			}
		}
		cout << '\n';
	}
	return 0;
这里空空如也

有帮助,赞一个