题目简介 :

 P2670 [NOIP 2015 普及组] 扫雷游戏 - 洛谷

AC代码: 
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;

int n, m;
char st[101][101];//记录每个位置有 / 无 雷
int boom[101][101];//记录每个位置周围九宫格雷的个数

void change(int i , int j)
{
	for (int a = -1; a <= 1; a++)
	{
		for (int b = -1; b <= 1; b++)
		{
			int ti = i + a, tj = j + b;
			if (ti >= 1 && ti <= n && tj >= 1 && tj <= m)
			{
				boom[ti][tj] += 1;
			}
		}
	}
}

signed main()
{
	
	cin >> n >> m; // n 行 m 列

	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			cin >> st[i][j];
			if (st[i][j] == '*')
			{
				change(i , j);
			}
		}
	}

	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			if (st[i][j] == '*')
				cout << st[i][j];
			else
				cout << boom[i][j];
		}
		cout << endl;
	}

	return 0;
}

Logo

集算法之大成!助力oier实现梦想!

更多推荐