成绩统计(3排4组)

文章讲述了如何根据给定的3排4组座位成绩,计算全班平均成绩、各排和各组的平均成绩,并按照指定格式输出结果的过程。
摘要由CSDN通过智能技术生成

题目描述

某班学生分为3排4组。假定期末考试某门功课成绩,按教室座位排列,如下图所示。

第一组第二组第三组第四组
第一排****
第二排****
第三排****
    
      第1组     第2组     第3组     第4组 
第1排     *     *     *     * 
第2排     *     *     *     * 
第3排     *     *     *     * 

输入格式

按座位形式,给定了3排4组的学生成绩。成绩取值范围[0,100]。

输出格式

输出的第1行:输出全班平均成绩,格式为“全班平均成绩: . *’’

输出的第2行:输出每一排同学平均成绩,成绩之间用一个空格分隔。格式为第 排平均成绩: .******”。

最后4行:输出每一组同学平均成绩。格式为“第 组平均成绩: .******”。

请注意行尾无空格,输出的成绩保留6位小数。

输入样例复制

在这里给出一组输入。例如:

96 87 73 69
89 92 85 78
85 83 91 80

输出样例复制

在这里给出相应的输出。例如:

全班平均成绩:84.000000
第1排平均成绩:81.250000 第2排平均成绩:86.000000 第3排平均成绩:84.750000
第1组平均成绩:90.000000
第2组平均成绩:87.333333
第3组平均成绩:83.000000
第4组平均成绩:75.666667

写作思路:

  1. 理解问题
    • 题目要求计算全班平均成绩、每排平均成绩以及每组平均成绩,并按要求格式化输出。
  2. 数据读取
    • 读取输入数据,将每排每组的成绩存储在一个二维数组中。
  3. 计算全班平均成绩
    • 遍历二维数组中的所有成绩,累加后除以成绩总数得到全班平均成绩。
  4. 计算每排平均成绩
    • 遍历二维数组的行,计算每排成绩的总和,然后除以每排的成绩数得到每排的平均成绩。
  5. 计算每组平均成绩
    • 遍历二维数组的列,计算每组成绩的总和,然后除以每组的成绩数得到每组的平均成绩。
  6. 格式化输出
    • 使用printfString.format方法格式化输出结果,注意小数点后保留六位小数,且行尾无空格。
package com.jsu.tmy;

import java.util.Scanner;

public class Score {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 定义二维数组存储成绩
        int[][] scores = new int[3][4];

        // 读取成绩
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                scores[i][j] = scanner.nextInt();
            }
        }
        scanner.close();

        // 计算全班平均成绩
        double totalScore = 0;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                totalScore += scores[i][j];
            }
        }
        double classAverage = totalScore / 12.0; // 班级人数3排4组,共12人

        // 输出全班平均成绩
        System.out.printf("全班平均成绩:%.6f\n", classAverage);

        // 计算并输出每排平均成绩
        for (int i = 0; i < 3; i++) {
            double rowTotal = 0;
            for (int j = 0; j < 4; j++) {
                rowTotal += scores[i][j];
            }
            double rowAverage = rowTotal / 4.0; // 每排4人
            System.out.printf("第%d排平均成绩:%.6f ", i + 1, rowAverage);
            if (i < 2) {
                System.out.print("第"); // 不是最后一排,输出“第”准备输出下一排
            }
        }
        System.out.println(); // 换行

        // 计算并输出每组平均成绩
        for (int j = 0; j < 4; j++) {
            double groupTotal = 0;
            for (int i = 0; i < 3; i++) {
                groupTotal += scores[i][j];
            }
            double groupAverage = groupTotal / 3.0; // 每组3人
            System.out.printf("第%d组平均成绩:%.6f\n", j + 1, groupAverage);
        }
    }
}

运行结果:

 

 

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值