#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int a[8] = {1 , 1 , 1 , 0 , 0 , -1 , -1 , -1};
int b[8] = {1 , 0 , -1 , 1 , -1 , 1 , 0 , -1};
int main() {
int n , m;
cin >> n >> m;;
char s[n][m];
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < m ; j++){
cin >> s[i][j];
}
}
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < m ; j++){
int lei = 0;
if(s[i][j] == '?'){
if(s[i + a[1]][j + b[1]] == '*')lei++;
if(s[i + a[2]][j + b[2]] == '*')lei++;
if(s[i + a[3]][j + b[3]] == '*')lei++;
if(s[i + a[4]][j + b[4]] == '*')lei++;
if(s[i + a[5]][j + b[5]] == '*')lei++;
if(s[i + a[6]][j + b[6]] == '*')lei++;
if(s[i + a[7]][j + b[7]] == '*')lei++;
if(s[i + a[8]][j + b[8]] == '*')lei++;
s[i][j] = lei;
}
}
}
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < m ; j++){
cout << s[i][j] ;
}
cout << endl;
}
return 0;
}
感觉这代码问题挺大的