2016-12-03 3 views
0

Я хочу рассчитать сумму в каждом столбце 2D-массива. До сих пор я получил это:Вычислить сумму столбцов в 2D-массиве

public static double[] colMean(double[][] array){ 
    double arrayCopy[] = new double[array.length]; 

    for(int i = 0; i < array.length; i++){ 
     double colSum = 0; 
     for(int k = 0; k < array.length ; k++){ 
      colSum = colSum + array[k][i]; 
     }  
     arrayCopy[i] = colSum; 
    } 
    return arrayCopy; 
} 
+0

Так что именно проблема? – Mureinik

+0

Я не могу вычислить сумму массива, у которого не было такого же количества строк, что и столбцы. – Chris

ответ

0
//Create a destination array to store column sums 
//I'm supposing every row has the same number of columns 
for (int i=0; i<array[0].length; i++) { 
    destination_array[i]=0; 
} 

//Traversing the 2D array 
for (int i=0;i<array.length; i++) { 

    //Adding each column value at the column accumulator 
    for (int k=0;k<array[i].length;k++ { 
     destination_array[k]+=array[i][k]; 
    } 
} 

Надеется, что это помогает

+0

Это моя проблема. Что, если не каждая строка имеет одинаковое количество столбцов? – Chris

+0

Затем для каждой строки вы должны проверить, существует ли это число столбцов. Вы можете сделать это в первом цикле, тогда у вас будет правильный размер destination_array – pekechis

+0

Я уже исправил его, но спасибо :) – Chris

0

вас цикл в 2d массивов следующим образом:

for(int i = 0; i < array.length; i++){ 
     double colSum = 0; 
     for(int k = 0; k < array[i].length ; k++){ 
      colSum = colSum + array[i][k]; 
     } 
+0

Но я хочу, чтобы каждый столбец не был рядом. – Chris

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