2014-10-20 5 views
-2

Я создаю метод, который находит среднее значение удвоений в строке 2D-массива. Метод принимает символ, который описывает класс, который является строкой. Из этого я должен найти среднее значение всех элементов в этой строке. Как найти строку и рассчитать среднее значение?Поиск среднего числа строк 2D-массива

Вот что я до сих пор:

import java.util.Arrays; 

public class GradeBook { 

private String name; 
private char[] categoryCodes; 
private String[] categories; 
private double[] categoryWeights; 
private double[][] gradeTable; 

public GradeBook(String nameIn, char[] categoryCodesIn, 
    String[] categoriesIn, double[] categoryWeightsIn) { 

    name = nameIn; 
    categoryCodes = categoryCodesIn; 
    categories = categoriesIn; 
    categoryWeights = categoryWeightsIn; 
    gradeTable = new double[5][0]; 
} 
public double categoryAvg (char gradeCategory) { 

    double sum = 0.0; 
    double count = 0.0; 
    int index = 0; 

    if (gradeCategory == 'a') 
     index = 0; 
    else if (gradeCategory == 'q') 
     index = 1; 
    else if (gradeCategory == 'p') 
     index = 2; 
    else if (gradeCategory == 'e') 
     index = 3; 
    else if (gradeCategory == 'f') 
     index = 4; 

    return sum/count; 
    } 
} 
+0

В коде нет ничего, что ручки с массивом. Пожалуйста, напишите весь код, связанный с вашей проблемой. – msrd0

+0

И поскольку 'count' равно 0 каждый раз, вы получите [' ArithmeticException'] (http://docs.oracle.com/javase/8/docs/api/java/ lang/ArithmeticException.html) в операторе 'return' – msrd0

ответ

1

После строки выбирается все, что вам нужно сделать, это среднее арифметическое 1D-массив на этой строке. Что-то вроде:

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

Вы должны добавить что-то вроде этого до конца, чтобы не пытаться делить на ноль:

if (count == 0) { 
    return 0; 
} else { 
    return sum/count; 
}  
Смежные вопросы