有关添加数组的问题。我有以下代码:
B [row] [col] = B [row + 1] [col + 1] + B [row] [col + 1];
假设row = 2,col = 3;我不太清楚会发生什么。我们有(=)赋值所以我猜是会分配右边的东西,但我不知道如何计算它。在这个例子中,它出现在我身边:13在右侧,但这没有意义。我会给b [row] [col]分配13个值???在跟踪程序中显示为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 = 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