c++ - C 解决方案,有人可以向我解释这段代码吗?

标签 c++ multidimensional-array

我的 C++ 老师为我们遇到的问题提供了解决方案,但有一部分我无法理解发生了什么。有人可以向我解释吗?正在从文本文件中读取 m 和 n 以定义数组的大小。

for (int row=0; row < m; row++) {
    for (int col = 0; col < n; col++) {
        if (field[row][col] =='*') {

            ctr[row - 1][col - 1]++;
            ctr[row - 1][col]++;
            ctr[row - 1][col + 1]++;
            ctr[row][col - 1]++;
            ctr[row][col + 1]++;
            ctr[row + 1][col - 1]++;
            ctr[row + 1][col]++;
            ctr[row + 1][col + 1]++;

        }
    }
}

最佳答案

它将矩阵中星号 (*) 周围所有方 block 的值增加一。

首先它搜索一个*,然后增加围绕星星的所有 8 个方 block 的值。

假设矩阵 field 的一部分如下所示。

     |    |  
+----+----+---+
     |  * |  
+----+----+---+
     |    |  

ctr如下

   1 |  1 | 1
+----+----+---+
   1 |  1 | 1
+----+----+---+
   1 |  1 | 1

ctr 将是

   2 |  2 | 2
+----+----+---+
   2 |  1 | 2
+----+----+---+
   2 |  2 | 2

逻辑如上。但是当星星靠近边界时要小心访问冲突。

关于c++ - C 解决方案,有人可以向我解释这段代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900936/

相关文章:

c++ - 排序函数,它采用指向接口(interface)类的指针 vector

java - C++ 和 Java 应用程序的最佳数据库

c++ - yaml-cpp InvalidNode 异常

javascript - 为什么此代码返回 3 维数组

c - 关于二维数组

c++ - 使用具有多态性的引用时无效的初始化

c++ - 将python编译成共享库

javascript - 康威的生命游戏 - 如何伪造一个 "infinite"二维平面

javascript - 没有固定大小的 JS 多维数组

java - 二维整数数组的 Arrays.sort 失败