解题思路:

注意事项:

参考代码:

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();  // 雷区行数

        int m = sc.nextInt();  // 雷区列数

        char[][] arr = new char[n][m];  // 存储雷区地雷分布

        char[][] arr1 = new char[n][m];  // 存储雷区周围格地雷数

        // 读入雷区地雷分布

        for (int i = 0; i < n; i++) {

            String line = sc.next();

            for (int j = 0; j < m; j++) {

                arr[i][j] = line.charAt(j);

            }

        }

        // 遍历雷区每个非地雷格,计算周围格地雷数

        for (int i = 0; i < n; i++) {

            for (int j = 0; j < m; j++) {

                if (arr[i][j] == '*') {  // 如果是地雷格,直接填充 *

                    arr1[i][j] = '*';

                } else {  // 如果是非地雷格,计算周围格地雷数

                    int count = 0;  // 周围格地雷数

                    for (int k = -1; k <= 1; k++) {  // 遍历周围 8 个格

                        for (int l = -1; l <= 1; l++) {

                            if (k == 0 && l == 0) {  // 中心格不做处理

                                continue;

                            }

                            int row = i + k;

                            int col = j + l;

                            if (row >= 0 && row < n && col >= 0 && col < m && arr[row][col] == '*') {

                                count++;  // 如果周围格是地雷,计数器加1

                            }

                        }

                    }

                    arr1[i][j] = (char) ('0' + count);  // 数字字符的 ASCII 码比数字小 48

                }

            }

        }

        // 输出雷区,非地雷格显示周围格地雷数,地雷格显示 *

        for (int i = 0; i < n; i++) {

            for (int j = 0; j < m; j++) {

                System.out.print(arr1[i][j]);

            }

            System.out.println();

        }

    }

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论