You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算学生成绩二维数组平均值并初始化GPA新数组?

问题:将学生成绩二维数组转换为GPA数组

我拥有一个存储学生成绩的二维数组,想要创建一个存储对应GPA的新数组。我知道如何使用嵌套for循环计算平均值,但不知道如何将计算得到的GPA自动作为元素初始化到新数组中。

以下是我用于计算GPA的代码:

double[][] grades = {
    { 3.83, 9.21, 9.25, 0.84, 1.40, 7.90, 1.41, 5.15 },
    { 5.09, 3.66, 3.04, 3.02, 8.59, 2.34, 8.86, 7.40 },
    { 5.35, 0.85, 8.56, 7.37, 2.78, 3.19, 2.04, 5.70 },
    { 9.25, 9.62, 7.08, 7.27, 9.86, 5.88, 9.86, 9.70 },
    { 3.39, 2.75, 1.23, 1.04, 3.87, 8.72, 4.60, 6.21 }
};

// CREATE NEW ARRAY OF GPAS
double[] gpa = new double[grades.length];
for (int i = 0; i < grades.length; i++) {//start of calculate gpa loop
    double sum = 0;
    double avg; 
    for (int j = 0; j < grades[i].length; j++){     
        sum += grades[i][j];   
    }
 avg = (sum/grades[i].length);
}

我期望得到类似double[] gpa = {4.87, 5.25, 4.48, 8.57, 3.98}的数组,尝试用嵌套for循环解决但语句顺序错误,导致报错或元素全为0.00,希望得到解决提示。


解决方法

你的代码已经正确计算出了每个学生的平均成绩avg,但缺少将计算结果赋值给gpa数组的步骤——Java中创建double数组时,默认元素值都是0.0,你没有覆盖这些默认值,所以最终数组全为0.00。

只需要在计算出平均值后,把它赋值给gpa数组对应索引的位置即可,修正后的代码如下:

double[][] grades = {
    { 3.83, 9.21, 9.25, 0.84, 1.40, 7.90, 1.41, 5.15 },
    { 5.09, 3.66, 3.04, 3.02, 8.59, 2.34, 8.86, 7.40 },
    { 5.35, 0.85, 8.56, 7.37, 2.78, 3.19, 2.04, 5.70 },
    { 9.25, 9.62, 7.08, 7.27, 9.86, 5.88, 9.86, 9.70 },
    { 3.39, 2.75, 1.23, 1.04, 3.87, 8.72, 4.60, 6.21 }
};

// CREATE NEW ARRAY OF GPAS
double[] gpa = new double[grades.length];
for (int i = 0; i < grades.length; i++) {
    double sum = 0;
    for (int j = 0; j < grades[i].length; j++){     
        sum += grades[i][j];   
    }
    // 将计算出的平均值赋值给gpa数组的对应索引
    gpa[i] = sum / grades[i].length;
}

关键说明:

  • 外层循环的i正好对应每个学生的索引,计算完第i个学生的平均成绩后,直接赋值给gpa[i]即可。
  • 可以省略单独的avg变量,直接把计算结果赋值给数组元素,让代码更简洁。
  • 如果需要和你期望的示例一样保留两位小数,可以使用格式化处理:
    // 格式化保留两位小数并转换回double类型
    gpa[i] = Double.parseDouble(String.format("%.2f", sum / grades[i].length));
    

内容的提问来源于stack exchange,提问作者NightWanders

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:33:12