1 条题解
-
0
// 包含C++所有常用头文件(方便刷题/快速编写) #include<bits/stdc++.h> using namespace std; // 存储扫雷地图的字符数组(*表示地雷,.表示空地) char a[105][105]; // 标记数组:1代表该位置是地雷,0代表不是地雷 int b[105][105]; int main(){ // n:扫雷地图的行数,m:列数 int m,n; // 输入行数n 和 列数m 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]=='*'){ // 如果这个格子是地雷 b[i][j]=1; // 标记为1(是地雷) } } } // 第二步:输出最终的扫雷结果 for(int i = 1;i<=n;i++){ for(int j = 1;j<=m;j++){ if(b[i][j]==1){ // 如果当前格子是地雷 cout <<"*"; // 直接输出 * }else{ // 如果不是地雷 // 计算当前格子 周围8个方向 的地雷总数 int ans= b[i-1][j] + // 正上方 b[i-1][j-1]+ // 左上 b[i-1][j+1]+ // 右上 b[i][j-1] + // 正左 b[i][j+1] + // 正右 b[i+1][j] + // 正下方 b[i+1][j+1]+ // 右下 b[i+1][j-1]; // 左下 cout <<ans; // 输出周围地雷数量 } } cout <<endl; // 一行输出完,换行 } return 0; }
- 1
信息
- ID
- 1942
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 24
- 已通过
- 5
- 上传者
粤公网安备44195502000195号