Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将二维数组的列相乘?JAVA_Java_For Loop_Average_Multidimensional Array_Weighted Average - Fatal编程技术网

如何将二维数组的列相乘?JAVA

如何将二维数组的列相乘?JAVA,java,for-loop,average,multidimensional-array,weighted-average,Java,For Loop,Average,Multidimensional Array,Weighted Average,以前的方法使用用户输入定义的大小构造和填充二维双数组。 computeCategoryAverages将中间索引取平均值,然后将其放入最终索引 然后,computeOverallAverage应将0索引(权重)乘以最终索引 并存储该数字,然后重复,直到行结束,每次相加 Weight Grade1 Grade2 Grade3 Average ---------------------------------------- 1| 3.0 456.0 4356.0 456.0

以前的方法使用用户输入定义的大小构造和填充二维双数组。 computeCategoryAverages将中间索引取平均值,然后将其放入最终索引 然后,computeOverallAverage应将0索引(权重)乘以最终索引 并存储该数字,然后重复,直到行结束,每次相加

   Weight  Grade1  Grade2  Grade3  Average
  ----------------------------------------
1| 3.0  456.0  4356.0  456.0    1756.0  
2| 4.0  3456.0 674.0  34534.0  12888.0
3| 2.0  236.0  791.0   536.0    521.0

Example of what computeOverallAverage is supposed to do:
3.0 * 1756.0 = 5268
4 * 12888.0 = 51552
5268 + 51552= 56820
2 * 521= 1042
56820 + 1042 = 57862
computeCategoryAverages工作完美无瑕

public static double[][] computeCategoryAverages(double[][] scoreArray){
    for(int i = 0; i < scoreArray.length; i++){
        double sum = 0;
        int numOfAssign = 0;
        double average=0.0;
        System.out.printf("The Average for category:%d:",i+1);
        System.out.println();
        for(int j = 1; j < scoreArray[i].length-1; j++){
            numOfAssign++;
            sum = sum + scoreArray[i][j];
        }
        average = sum / numOfAssign;
        scoreArray[i][scoreArray[i].length-1] = average;  
    }    
    return scoreArray;
}
公共静态双[][]计算类别平均值(双[][]记分数组){
for(int i=0;i
我遇到的问题是ComputeOverallage,我真的不知道如何制作数组 使用循环正确运行,以使列相乘,并用加法将其复合

// Compute the overall average
public static double computeOverallAverage(double[][] scoreArray){
    double currentAverage = 0;
    for(int i = 0; i < scoreArray[i].length-1; i++){
        //(weightedAverage = average *weight);
        double wAverage = scoreArray[i][scoreArray[i].length-1] * scoreArray[i][0];
        currentAverage += wAverage;

    }
    return currentAverage;
}
//计算总平均值
公共静态双精度计算平均值(双精度[][]scoreArray){
双电流平均值=0;
对于(int i=0;i
在您的for循环中
计算总平均值

远程索引
scoreArray[i]。长度

scoreArray.length
=行的长度
scoreArray[i]。长度
=列的长度

在for循环中,您希望为行循环

 for(int i = 0; i < scoreArray.length-1; i++){
        //(weightedAverage = average *weight);
        double wAverage = scoreArray[i][scoreArray[i].length-1] * scoreArray[i][0];
        currentAverage += wAverage;

    }
for(int i=0;i
computeoverallaverage的输出是什么?computeoverallaverage的输出应该是双倍的,即每行的权重列乘以平均列的总和。有关示例,请参见表下的计算。