题解
2025-07-12 20:19:57
发布于:广东
1阅读
0回复
0点赞
将每个"?"遍历,它的八个方向依次判断有没有*
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m;
char a[101][101];
cin>>n>>m;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i = 1;i<=n;i++){
for(int j = 1;j<=m;j++){
if(a[i][j]'?'){
int num=0;
if(a[i+1][j] '') num++;
if(a[i-1][j] =='') num++;
if(a[i][j+1] '') num++;
if(a[i][j-1] =='') num++;
if(a[i+1][j+1]'*') num++;
if(a[i+1][j-1]'*') num++;
if(a[i-1][j+1]'') num++;
if(a[i-1][j-1]=='') num++;
a[i][j] = num+'0';
}
}
}
for(int i = 1;i<=n;i++){
for(int j = 1;j<=m;j++){
cout<<a[i][j];
}
cout<<endl;
}
}
这里空空如也
有帮助,赞一个