题解如下
2025-04-30 16:38:21
发布于:浙江
这道题其实就是把上下左右8个方向全部判断一遍,因此判断是不是雷然后就行
#include<bits/stdc.h>
using namespace std;
int main(){
char a[101][101];
int n,m;
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]'?'){
a[i][j]='0';
if(a[i+1][j]'') a[i][j]++;
if(a[i+1][j+1]=='') a[i][j];
if(a[i+1][j-1]=='*') a[i][j];
if(a[i][j+1]'*') a[i][j]++;
if(a[i][j-1]'') a[i][j]++;
if(a[i-1][j+1]=='') a[i][j];
if(a[i-1][j]=='*') a[i][j];
if(a[i-1][j-1]=='*') a[i][j];
}
}
}for(int i=1;i<=n;i){
for(int j=1;j<=m;j++){
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}
全部评论 1
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,b[101][101],x2,y2,x1,y1;
char a[101][101];
void pl(int x,int y){
pl(x+1)
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i];
if(a[i]'S'){
b[i][j]=1;
x2=i;
y2=j;
}else if(a[i]'.'){
b[i][j]=1;
}else if(b[i][j]==)
else{
b[i][j]=1;
x1=i;
y1=j;
}
}
}
pl(1,1);
}2025-05-14 来自 浙江
0保存一下,别管
2025-05-14 来自 浙江
0
有帮助,赞一个