题解
2024-06-25 21:03:10
发布于:广东
3阅读
0回复
0点赞
本人菜,代码太丑请见谅
#include<bits/stdc++.h>
using namespace std;
char n[110][110];
int p[110][110];//记录雷区周围的数字
int main(){
    int a,b;
    cin>>a>>b;
    for(int i=1;i<=a;i++){
        for(int j=1;j<=b;j++){
            cin>>n[i][j];
        }
    }
    for(int i=1;i<=a;i++){
        for(int j=1;j<=b;j++){
            if(n[i][j]=='*'){
                p[i][j+1]++;//各个方向的数加1
                p[i+1][j+1]++;
                p[i-1][j-1]++;
                p[i+1][j]++;
                p[i-1][j+1]++;
                p[i+1][j-1]++;
                p[i-1][j]++;
                p[i][j-1]++;
            }
        }
    }
    for(int i=1;i<=a;i++){
        for(int j=1;j<=b;j++){
            if(n[i][j]=='?') cout<<p[i][j];//当格子不是雷时将格子上的数输出
            else cout<<"*";//否则输出雷
        }
        cout<<endl;
    }
    return 0;
}
这里空空如也

有帮助,赞一个