一种思路简单的题解
2025-07-26 16:59:44
发布于:上海
0阅读
0回复
0点赞
#include <iostream>
using namespace std;
int main(){
    int n,m;
    cin >> n>>m;
    char map1[n+2][m+2];
    for (int i=1;i<=n;i++){
        for (int j=1;j<=m;j++){
            cin >> map1[i][j];
        }
    }
    for (int i=0;i<=n+1;i++){
        map1[i][0] = 'X';
        map1[i][m+1] = 'X';
    }
    for (int j=0;j<=m+1;j++){
        map1[0][j] = 'X';
        map1[n+1][j] = 'X';
    }
    int dilei = 0;
    for (int i=1;i<=n;i++){
        for (int j=1;j<=m;j++){
            if (map1[i][j]=='?'){
                if (map1[i-1][j-1]=='*')dilei++;
                if (map1[i-1][j]=='*')dilei++;
                if (map1[i-1][j+1]=='*')dilei++;
                if (map1[i][j-1]=='*')dilei++;
                if (map1[i][j+1]=='*')dilei++;
                if (map1[i+1][j-1]=='*')dilei++;
                if (map1[i+1][j]=='*')dilei++;
                if (map1[i+1][j+1]=='*')dilei++;
                map1[i][j] = (char)(dilei+'0');
                dilei = 0;
            }
            
        }
    }
    for (int i=1;i<=n;i++){
        for (int j=1;j<=m;j++)cout << map1[i][j];
        cout << endl;
    }
    return 0;
}
这里空空如也


有帮助,赞一个