2014-02-05 5 views
1

Я не уверен, как добавить строку, за исключением первого столбца. Это то, что у меня есть до сих пор. Я пытаюсь получить вывод 5 = 1 + 2 + 3, 7 = 1 + 2 + 4, 8 = 3 + 5 + 9. Я помещу его в другой массив, чтобы записать разницу.проблемы с 2D-массивом

public class Main { 
    static int[][] Array = { { 5, 1, 2, 3 }, { 7, 1, 2, 4 }, { 8,3,5,9 } }; 

    public int[] sum(int[][] array) { 
    int index = 0; 
    int temp[] = new int[array[index].length]; 
    for (int i = 0; i < array.length; i++) { 
     int sum = 0; 
     for (int j = 0; j < array[i].length; j++) { 
     sum += array[j][i]; 
     } 
     temp[index] = sum; 
     System.out.println("Index is: " + index + " Sum is: " + sum); 
     index++; 
    } 
    return temp; 
    } 

    public static void main(String[] args) { 
    new Main().sum(Array); 
    } 
} 
+1

Я считаю 'сумма()' метод предназначен, чтобы получить сумму элементов в строке. Но это будет сделано, если вы измените 'array [j] [i]' на 'array [i] [j]'. – Christian

+0

Спасибо, я смог получить его – user124557

ответ

0

никогда не проверяют <= когда i=0 < просто достаточно Изменение этой линии

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

к этому

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

Спасибо, за помощь – user124557

+1

Это не будет работать. вывод: «Сумма составляет: 5 Индекс: 1 Сумма составляет: 8 Индекс: 2 Сумма: 16' – gowtham

+0

@gowtham Спасибо, что напомнили мою ошибку ... – Nambi

1

Изменить

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

к

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

выход:

Index is: 0 Sum is: 6 
Index is: 1 Sum is: 7 
Index is: 2 Sum is: 17 
+0

Я получаю ArrayIndexOutOfBounds – user124557

+0

Я получение результата, изменили ли вы массив [i] [j] 'i и j ?? – gowtham

+0

Я забыл снять <= и оставить его как < – user124557

Смежные вопросы