2015-10-29 3 views
1

Скажем, у меня есть 2D массив:Добавление массивов в Java

1.007, 0.003, 0.003 
0.0095, 2.003, 0.007 
1.005, 0.008, 0.001 
0.003, 6.884, 0.007 

Как я могу идти через колонки такие, что я получаю в среднем из чисел больше 1? Например: (1.007 + 1.005)/2 = 1.006

[1.006, 4.4435, 0] 

Я написал это до сих пор. Работал над ним несколько дней, но я не могу заставить его работать.

double sum=0; 
for(int j = 0; j <data[0].length; ++j) { // col 
    for(int i = 0; i < data.length; ++i) { // row 
     if (data[i][j]>=1){ 
      sum=sum+data[i][j]; 
      System.out.println(sum); 
      // j+=1; 
     } 
    } 
} 

данные - это мой 2D-массив.

Спасибо!

+1

Не могли бы вы рассказать о том, как вычисляются числа «[1.006, 4.4435, 0]»? Например, какие числа составляют 1,006? –

+0

Отредактировал свой ответ в соответствии с вашими вопросами по редактированию – Klever

ответ

1

Если вам нужно идти через колонки, изменить порядок для цикла

public class ArrayExample { 

    public static void main(String[] args) { 
     double[][] data = { 
       {1.007, 0.003, 0.003}, 
       {0.0095, 2.003, 0.007}, 
       {1.005, 0.008, 0.001}, 
       {0.003, 6.884, 0.007} 
     }; 

     double sum = 0; 

     for (int i = 0; i < data.length; i++) { 
      for (int j = 0; j < data[0].length; j++) { 
       if (data[i][j] >= 1.0) { 
        sum += data[i][j]; 
        System.out.println(sum); 
       } 
      } 
     } 
    } 
} 

Придает

1.007 
3.01 
4.015 
10.899000000000001 
1

Отредактировано в соответствии последнее изменение в вопрос:

double[][] data = { 
       {1.007, 0.003, 0.003}, 
       {0.0095, 2.003, 0.007}, 
       {1.005, 0.008, 0.001}, 
       {0.003, 6.884, 0.007} 
     }; 

     double sum; 
     int count; 

     for (int j = 0; j < data[0].length; j++) { 
      sum = 0; 
      count = 0; 
      for (int i = 0; i < data.length; i++) { 
       if (data[i][j] >= 1.0) { 
        sum += data[i][j]; 
        count++; 
       } 
      } 
      if (count!=0){ 
       System.out.print(sum/count + " "); 
      } else { 
       System.out.println(0); 
      } 

     } 
    } 

Результат: 1.0059999999999998 4.4435 0

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