20,求调
查看原帖
20,求调
1252892
zyc20130505楼主2024/8/11 10:09
#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[110][110];
int dx[8]={-1,-1,0,1,1,1,0,-1};
int dy[8]={0,1,1,1,0,-1,-1,-1};
void dfs(int x,int y){
	for(int i=0;i<8;i++){
		int nx=x+dx[i];
		int ny=x+dy[i];
		if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&a[nx][ny]=='*'){
			if(a[x][y]=='?'){
				a[x][y]='1';
			}else{
				a[x][y]+=1;
			}
		}
	}
}
int main(){
	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]=='?'){
				dfs(i,j);
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<a[i][j];
		}
		cout<<endl;
	}
	return 0;
}
2024/8/11 10:09
加载中...