【问题标题】:Having issues with adding two positions of array添加两个数组位置时遇到问题
【发布时间】:2013-10-31 22:35:42
【问题描述】:

关于添加数组的问题。我有以下代码:

B[row][col] = B[row+1][col+1] + B[row][col+1];

假设行 = 2,列 = 3;我不太明白发生了什么。我们有 (=) 分配,所以我猜会分配右边的任何东西,但我不知道如何计算它。在这个例子中,我认为是:右侧的 13 但这没有意义。我会给 b[row][col] 分配 13 个值???在跟踪程序中显示为2。我不明白,请帮助!

【问题讨论】:

    标签: multidimensional-array


    【解决方案1】:

    我不完全确定您要问的是什么,但本质上您有一个二维数组,而 B[row][col] 语法是访问二维数组中的特定“单元格”。把它想象成一个网格。因此,您对赋值运算符所做的是获取单元格 B[row+1][col+1] 和 B[row][col+1] 中的值,将它们加在一起,并将结果值分配给单元格B[行][列]。那有意义吗?此外,最好确保这样做不会导致任何索引越界异常。

    【讨论】:

      【解决方案2】:

      这在一定程度上取决于您使用的工具/语言,例如 matlab 从 1 开始索引数组,所以数组 a 的第一个元素是 a[1] 而像 C/Java 这样的语言从 0 开始索引,所以第一个元素数组 a 是a[0]。

      让我们假设索引是像在 C/Java 中一样完成,然后考虑一个多维数组 B

      12 13 14 11
      41 17 23 22
      18 10 20 38
      81 17 32 61
      

      然后使用row = 2 和col = 3,您将拥有B[row][col] 作为位于第三行的元素(记住索引从0 开始,所以B[2] 是第三行)和第四列,在此处标记* 号之间。

      12 13 14 11
      41 17 23 22
      18 10 20 *38*
      81 17 32 61
      

      至于改变多维数组中的值,是通过为旧值的索引分配一个新值来完成的。

      B[row][col] = B[row+1][col+1] + B[row][col+1];
      

      通过row=1 和col=0 我们得到

      B[1][0] = B[2][1] + B[1][1];
      B[1][0] = 10 + 17;
      B[0][0] = 27;
      

      或者:

       12 13 14 11               12 13 14 11
      (41) 17 23 22              (27) 17 23 22
       18 10 20 38        ==>    18 10 20 38
       81 17 32 61               81 17 32 61  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        相关资源
        最近更新 更多