RT
代码如下:
#include <bits/stdc++.h>
using namespace std;
int n, m, mine[110][110];
char maps[110][110];
const int x_pos[10] = {0,1,0,-1,0,1,-1,1,-1};
const int y_pos[10] = {0,0,1,0,-1,-1,1,1,-1};
inline void serch(int x, int y) {
for (int i = 1; i <= 8; ++i) {
int nx = x + x_pos[i];
int ny = y + y_pos[i];
if ((nx<=n&&nx>=1&&ny<=m&&ny>=1)&&(maps[nx][ny] == '*')) {
mine[x][y]++;
}
}
return;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cin >> maps[i][j];
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; i <= m; ++j) {
if (maps[i][j] == '?') {
serch(i, j);
}
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
if (maps[i][j] == '*') {
cout << '*';
}
else {
cout << mine[i][j];
}
}
cout << endl;
}
return 0;
}