求助
查看原帖
求助
930075
MDTSF楼主2023/10/18 15:26
#include<bits/stdc++.h>
using namespace std;

char c;int n,m,ms[101][101];

int main(){
	cin>>n>>m;
	for (int i=1;i<=n;++i){
		for (int j=1;j<=m;++j){
			scanf("%c",&c);
			if (c=='*')ms[i][j]=-1;//输入时一起再输入map数组(ms) 
			else if (c=='?')ms[i][j]=1;
		}
	}
	
	for (int i=1;i<=n;++i){
		for (int j=1;j<=m;++j){
			if (ms[i][j]==-1){//是地雷就跳过 
				continue;
			}
			else {// 不是地雷 
				int ans=0;
				if (ms[i][j+1]=='*')++ans;
				if (ms[i][j-1]=='*')++ans;
				if (ms[i+1][j]=='*')++ans;
				if (ms[i-1][j]=='*')++ans;
				if (ms[i+1][j+1]=='*')++ans;
				if (ms[i-1][j+1]=='*')++ans;
				if (ms[i+1][j-1]=='*')++ans;
				if (ms[i-1][j-1]=='*')++ans;
				ms[i][j]=ans;
				printf("[debug]x=%d y=%d ans=%d\n",i,j,ans);
			}
		}
	}
	
	for (int i=1;i<=n;++i){
		for (int j=1;j<=m;++j){
			if (ms[i][j]==-1)printf("*");
			else printf("%d",ms[i][j]);
		}
		cout<<endl;
	}
	return 0;
}

求助!!!

2023/10/18 15:26
加载中...