添加两个阵列的位置有问题

时间:2013-10-31 22:35:42

标签: multidimensional-array

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

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

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

2 个答案:

答案 0 :(得分:1)

我不完全确定你问的是什么,但基本上你有一个2D数组,B [row] [col]语法是访问2D数组中的特定“单元格”。把它想象成一个网格。那么你在赋值运算符中所做的就是获取单元格B [row + 1] [col + 1]和B [row] [col + 1]中的值,将它们加在一起,并将结果值赋给单元格B [行] [COL]。那有意义吗?此外,确保您没有获得任何索引超出范围的例外情况也是一件好事。

答案 1 :(得分:0)

这在某种程度上取决于您使用的工具/语言,例如,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 = 2col = 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=1col=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