20分求助
查看原帖
20分求助
341396
Vizzi_02楼主2020/9/21 22:38
#include <bits/stdc++.h>
using namespace std;
char a[1000][1000];
bool is_bomb[1000][10000];
int bomb_num[1000][10000];
int bomb(int n,int m)
{
	if(is_bomb[n][m] == false && a[n+1][m] == '*' || a[n-1][m] == '*' || a[n-1][m-1] == '*' || a[n+1][m-1] == '*' || a[n][m-1] == '*' || a[n-1][m+1] == '*' || a[n+1][m+1] == '*' || a[n][m+1])
	{
		return true;
	}
}
int main()
{
	int m,n;
	cin >> n >> m;
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			cin >> a[i][j];
			if(a[i][j] == '*')
			{
				is_bomb[i][j] = 1;
			}
			else
			{
				is_bomb[i][j] = 0;
			}
		}
	}
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			if(bomb(i,j))
			{
				bomb_num[i][j]++;
			}
		}
	}
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			if(is_bomb == false)
			{
				a[i][j] = char(bomb_num[i][j]);
			}
		}
	}
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			cout << a[i][j];
		}
		cout << endl;
	}
} 
2020/9/21 22:38
加载中...