题解
2025-08-03 15:58:17
发布于:广东
0阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n, m;
int dx[8] = {1, 1, 1, -1, -1, -1, 0, 0};
int dy[8] = {1, -1, 0, 1, -1, 0, 1, -1};
char mp[105][105];
char ans[105][105];
int main(){
    cin >> n >> m;
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= m; j++){
            cin >> mp[i][j];        
        }
    }
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= m; j++){
            if (mp[i][j] == '*'){
                ans[i][j] = '*';
                continue;
            }
            int s = 0;
            for (int k = 0; k < 8; k++){
                int nx = dx[k] + i;
                int ny = dy[k] + j;
                if (nx >= 1 && nx <= n && ny >= 1 && ny <= m){
                    if (mp[nx][ny] == '*'){
                        s++;
                    }
                }
            }   
            char f = s + '0';
            ans[i][j] = f;            
        }
    }
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= m; j++){
            cout << ans[i][j];
        }
        cout << endl;
    }
    return 0;
}```
这里空空如也



有帮助,赞一个