上海市计算机学会竞赛平台2020年5月月赛丙组扫雷
发布时间
阅读量:
阅读量
题目描述
小爱正在编写一个扫雷游戏的出题模块。这个模块的输入是一张地图,标记了每个地雷的位置,地雷以 * 表示,空地以 . 表示。这个模块的输出是一个表格,统计了每个空地周围八个方格内的地雷数量。
例如,给定一个初始地图:
*.*
...
*..
则应输出:
*2*
231
*10
请你帮助小爱来完成这个程序。
输入格式
第一行:两个整数n 和m;
接下来有n×m 个字符,表示每个方格是否存在地雷。
输出格式
共计n×m 个字符,表示每个方格周围地雷统计信息,若原本这个位置就有地雷,输出 *。
数据范围
1≤1001≤n,m≤100
样例数据
输入:
3 4
..
.**.
..
输出:
33
3**3
24
详见代码:
#include <cstdio>
#include <iostream>
using namespace std;
int n, m;
char a[105][105];
int f(int x, int y) {
int ans = 0;
for (int i = x - 1; i <= x + 1; i ++ ) {
for (int j = y - 1 ; j <= y + 1; j ++ ) {
if (a[i][j] == '*') ans ++ ;
}
}
return ans;
}
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] == '*') cout << '*';
else cout << f(i,j);
}
cout << endl;
}
return 0;
}
全部评论 (0)
还没有任何评论哟~
