2014-09-24 42 views
0

*作业找到一个锯齿阵列的总和

我试图在数组中添加值。用我在下面写的总和方法,该程序只适用于没有参差不齐的数组。如果我测试锯齿阵列,我得到一个IndexOutOfBoundsException。如果数组锯齿,尝试使这种方法起作用时,下一步应该采取什么措施?

int sum() { 
    int sum = 0; 
    for (int i = 0; i < array.length; i++) { 
     for (int j = 0; j < array[i].length; j++) { 
      sum += array[j][i]; 
     } 
    } 
return sum; 
} 
+3

你测试'数组[我] .length',但你访问'阵列[j]' – njzk2 2014-09-24 22:47:30

回答

2

你的方法是接近的,但它有一个小虫子 - 这

sum += array[j][i]; 

应该

sum += array[i][j]; 

请注意,你的内循环迭代array[i]

+0

谢谢,帮助! – Jerry 2014-09-24 23:13:05

1

反转指标:

sum += array[i][j]; 
1

你混合索引。首先循环遍历行(i),然后遍历列(j),但是当访问数组元素时,对列使用j,对列使用i

它应该是:

sum += array[i][j]; 
1

变化

sum += array[j][i];

sum += array[i][j];