我的另一种对角线方式无法正常工作。
public int sumOtherDiag()
{
int otherDiag = 0;
for (int i = 0; i < square.length−1; i++)
{
otherDiag += square[i][i];
}
return otherDiag;
}
我的输出没有显示在这里,但是有什么东西有人看错了吗?
此方法应该添加元素并获得魔方的第二个对角线(从右下方开始)的总和。 例如,如果我的方格是
01 04 03
03 05 04
05 02 04
输出
03 + 05 + 05 = and get 13
但是我的实际输出打印的数字比预期的要少。
(如果没有我的输出,很难解释。我将在以后访问我的程序时上传)
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
public int sumOtherDiag()
{
int otherDiag = 0;
int count = square.length;
for (int i = 0; i < square.length; i++)
{
otherDiag += square[i][--count];
}
return otherDiag;
}
答案 1 :(得分:1)
让我们分解您的代码,看看您做了什么以及想要什么:
使用您的一个循环,您的坐标为[0,0]
,[1,1]
并且根据我的知识错过了[2,2]
,因为您选择的最后一个索引小于{{1你必须知道索引从零开始到小于square.length−1
。
如果您运行此代码:
square.lenght
你的结果将是这个
int[][] array = {{01, 04, 03},
{03, 05, 04},
{05, 02, 04}
};
int otherDiag = 0;
for (int i = 0; i < array.length; i++) {
System.out.println(array[i][i]);
}
如果您选择排除1
5
4
,则输出
array.lenght-1
如你所见,你离开了最后一个4的索引,我相信这不是你想要的。
您想要对角元素求和而不是垂直元素
您想要的坐标是
1
5
,[0,2]
和[1,1]
将我的样本用作蓝图以找出您想要的内容
例如,假设[2,0]
,x = new int[3][4]
,x[0]
和x[1]
是一维的
数组,每个包含四个元素,如图x[2]
中x.length
所示,和
3
,x[0].length
和x[1].length
为x[2].length
如何遍历和使用您可以按照以下示例作为蓝图的2D数组: