2015-02-05 53 views
-1

我的其他对角线方法无法正常工作。魔方其他对角线

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

它应该做什么,它做什么呢? – immibis

+0

为什么我

+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

让我们打破你的代码,看看你做了什么,哪些是你想要的东西:

与一个循环,你有你的坐标为[0,0][1,1]和你错过了[2,2]根据我的知识,因为你选择最后一个索引小于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被排除你的输出

1 
5 

由于你看到你留下了最后一个4的索引,我相信这不是你正在寻找的。

你想有对角线元素的总和不竖向构件

想要的坐标

[0,2][1,1][2,0]

用我的样品作为蓝图找出你想要的东西

例如,假设x = new int[3][4]x[0]x[1],和x[2]是一维 阵列,并且每个包含四个元件,如该图所示x.length3,和 x[0].lengthx[1].length,和x[2].length4

enter image description here

如何遍历和使用二维数组,您可以按照以下示例作为您的蓝色打印

enter image description here