【发布时间】:2014-11-20 22:08:56
【问题描述】:
我需要这种方法来获取在其他方法中制作/更改的 2D 数组的中间列,计算每行的平均值(不包括 0 索引和最后一个索引),将该平均值放在最后一列行,然后下到下一行并重复,直到没有更多行。基本上 2 行 3 列的设置实际上将有 5 列,如下所示。
Weight Grade1 Grade2 Grade3 Average
----------------------------------------
1| 4.0 5.0 5.0 5.0 -999.0
2| 5.0 10.0 10.0 10.0 -999.0
该方法需要获取 Grade 分数,找到它们的平均值,然后将 -999.0 替换为平均值,然后对存在的下一行执行相同操作(大小由用户在另一种方法中输入定义)。这是我的方法代码,我知道我很接近,但我在某处犯了一些错误。
public static double[][] computeCategoryAverages(double[][] scoreArray){
for(int i = 0; i < scoreArray.length; i++){
double sum = 0;
int numOfAssign = 0;
if(i == 0){
System.out.println("The Average for the first category: ");
for(int j = 1; j < scoreArray[0].length-1; j++){
sum = sum + scoreArray[0][j];
numOfAssign++;
}
double average = sum / numOfAssign;
for(int k = 0; k < scoreArray.length; k++){
//sum = sum + scoreArray[i][j];
//noOfAssign++;
scoreArray[k][scoreArray[k].length-1] = average;
}
}
else{
System.out.println("The Average for the next category: ");
for(int j = 1; j < scoreArray[0].length-1; j++){
sum = sum + scoreArray[i][j];
numOfAssign++;
}
double average = sum / numOfAssign;
for(int k = 0; k < scoreArray.length; k++){
//sum = sum + scoreArray[i][j];
//noOfAssign++;
scoreArray[k][scoreArray[k].length-1] = average;
}
}
}
return scoreArray;
}
【问题讨论】:
-
现在的问题是什么?是否有任何错误/异常?
标签: java for-loop average multidimensional-array