来自New Bing的题解
2023-04-01 20:00:52
发布于:澳大利亚
113阅读
0回复
0点赞
#include <iostream>
using namespace std;
const int N = 110;
int n, m;
char g[N][N];
int dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1}; // 方向数组
int dy[8] = {-1, 0, 1, -1, 1, -1, 0, 1};
int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i ++ ) cin >> g[i];
    for (int i = 0; i < n; i ++ )
        for (int j = 0; j < m; j ++ )
            if (g[i][j] == '?')
            {
                int cnt = 0;
                for (int k = 0; k < 8; k ++ ) // 遍历八个方向
                {
                    int x = i + dx[k], y = j + dy[k];
                    if (x >= 0 && x < n && y >= 0 && y < m && g[x][y] == '*') cnt ++ ;
                }
                g[i][j] = cnt + '0';
            }
    for (int i = 0; i < n; i ++ ) puts(g[i]);
    return 0;
}
这里空空如也

有帮助,赞一个