2025-07-25 10:57:15
发布于:浙江
题解在此:
#include <iostream>
using namespace std;
const int N=105;
char a[N][N];
int b[N][N];
int x[]={-1,-1,-1,0,0,1,1,1};
int y[]={-1,0,1,-1,1,-1,0,1};
int main(){
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]=='?'){
for (int k=0;k<=7;k++){
int nx,ny;
nx=i+x[k];
ny=j+y[k];
if (a[nx][ny]=='*'){
b[i][j]++;
}
}
cout<<b[i][j];
}else{
cout<<'*';
}
}
cout<<endl;
}
return 0;
}
全部评论 5
并没有,毕竟纯模拟,顶多红上
2025-06-28 来自 广东
0因为当时我才学几个月2025-06-28 来自 浙江
0
#include<iostream> using namespace std; int sl(char a[110][110],int i,int j){ int s=0; if(a[i][j]=='*') return -1; if(a[i-1][j-1]=='*') s++; if(a[i][j-1]=='*') s++; if(a[i+1][j-1]=='*') s++; if(a[i-1][j]=='*') s++; if(a[i+1][j]=='*') s++; if(a[i-1][j+1]=='*') s++; if(a[i][j+1]=='*') s++; if(a[i+1][j+1]=='*') s++; return s; } int main(){ int n,m;char a[110][110]; 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(sl(a,i,j)==-1) cout<<'*'; else cout<<sl(a,i,j); }printf("\n"); } }
2025-06-28 来自 上海
0随随便便模拟一下就出来了
2025-06-28 来自 湖南
0这就是入门题
2025-06-28 来自 湖南
0谢
2025-05-20 来自 浙江
0
有帮助,赞一个