2014-10-20 82 views
-2

我正在創建一個方法,可以在二維數組的一行中找到雙精度值的平均值。該方法需要一個字符來描述該行的等級類別。從那以後,我需要找到該行中所有項目的平均值。我如何找到該行並計算平均值?查找二維數組行的平均值

這是我到目前爲止有:

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 2014-10-20 17:53:24

+0

而且由於count每次爲0,您將得到['ArithmeticException'](http://docs.oracle.com/javase/8/docs/api/java/ lang/ArithmeticException.html)在你的'return'語句中 – msrd0 2014-10-20 17:54:53

回答

1

一旦該行被選中所有你需要做的就是在該行上簡單的一維數組平均值。 喜歡的東西:

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; 
}