代码
1、用字符数组接受所有字符
2、依次检查每个非地雷格周围的地雷数
#include<bits/stdc++.h>
using namespace std;
char s[105][105];
int n,m;
void f(int x,int y);
int main(){
int i,j;
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>s[i][j];
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(s[i][j]=='?')
f(i,j);
cout<<s[i][j];
}
cout<<endl;
}
return 0;
}
void f(int x,int y){
int cnt=0;
if(x-1>=0&&y-1>=0&&s[x-1][y-1]=='*') cnt++;
if(x-1>=0&&s[x-1][y]=='*') cnt++;
if(x-1>=0&&y+1<=m&&s[x-1][y+1]=='*') cnt++;
if(y-1>=0&&s[x][y-1]=='*') cnt++;
if(y+1<=m&&s[x][y+1]=='*') cnt++;
if(x+1<=n&&y-1>=0&&s[x+1][y-1]=='*') cnt++;
if(x+1<=n&&s[x+1][y]=='*') cnt++;
if(x+1<=n&&y+1<=m&&s[x+1][y+1]=='*') cnt++;
s[x][y]=cnt+'0';
}