2014-09-24 2 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

ответ

2

Ваш метод близок, но у нее есть небольшая ошибка - это

sum += array[j][i]; 

должен быть

sum += array[i][j]; 

Обратите внимание, что ваш внутренний цикл итерация array[i].

+0

Спасибо, что помогает! – Jerry

1

инвертировать показатели:

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

Вы смесительные индексы. Вы сначала перебираете строки (i), затем через столбцы (j), но когда вы обращаетесь к элементам массива, вы используете j для строк и i для столбцов.

Оно должно быть:

sum += array[i][j]; 
Смежные вопросы