题解
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;
这里空空如也
有帮助,赞一个