题目描述
某班学生分为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
写作思路:
- 理解问题:
- 题目要求计算全班平均成绩、每排平均成绩以及每组平均成绩,并按要求格式化输出。
- 数据读取:
- 读取输入数据,将每排每组的成绩存储在一个二维数组中。
- 计算全班平均成绩:
- 遍历二维数组中的所有成绩,累加后除以成绩总数得到全班平均成绩。
- 计算每排平均成绩:
- 遍历二维数组的行,计算每排成绩的总和,然后除以每排的成绩数得到每排的平均成绩。
- 计算每组平均成绩:
- 遍历二维数组的列,计算每组成绩的总和,然后除以每组的成绩数得到每组的平均成绩。
- 格式化输出:
- 使用
printf
或String.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);
}
}
}
运行结果: