Java m个班n个同学的成绩,统计每个班的平均分以及级的最高分,最低分和平均分使用反冒泡进行排序
时间: 2023-05-19 17:07:25 浏览: 100
可以使用一个二维数组来存储每个班级的成绩,然后遍历数组计算每个班级的平均分和最高分、最低分。最后使用反冒泡排序算法对班级的平均分进行排序。
以下是示例代码:
```java
import java.util.Arrays;
public class GradeStatistics {
public static void main(String[] args) {
int m = 3; // 班级数量
int n = 5; // 同学数量
int[][] grades = {
{80, 90, 85, 70, 75},
{75, 85, 90, 80, 70},
{90, 80, 70, 75, 85}
};
double[] averages = new double[m];
int[] maxScores = new int[m];
int[] minScores = new int[m];
// 计算每个班级的平均分、最高分和最低分
for (int i = 0; i < m; i++) {
int sum = 0;
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int j = 0; j < n; j++) {
sum += grades[i][j];
max = Math.max(max, grades[i][j]);
min = Math.min(min, grades[i][j]);
}
averages[i] = (double) sum / n;
maxScores[i] = max;
minScores[i] = min;
}
// 使用反冒泡排序算法对班级的平均分进行排序
for (int i = 0; i < m - 1; i++) {
boolean swapped = false;
for (int j = 0; j < m - i - 1; j++) {
if (averages[j] < averages[j + 1]) {
// 交换平均分
double temp = averages[j];
averages[j] = averages[j + 1];
averages[j + 1] = temp;
// 交换最高分
int tempMax = maxScores[j];
maxScores[j] = maxScores[j + 1];
maxScores[j + 1] = tempMax;
// 交换最低分
int tempMin = minScores[j];
minScores[j] = minScores[j + 1];
minScores[j + 1] = tempMin;
swapped = true;
}
}
if (!swapped) {
break;
}
}
// 输出结果
for (int i = 0; i < m; i++) {
System.out.printf("班级%d:平均分=%.2f,最高分=%d,最低分=%d\n", i + 1, averages[i], maxScores[i], minScores[i]);
}
}
}
```
关于“lua closure factory 完整代码”和“中文加密”的问题,我需要更多的信息才能回答。请提供更具体的问题描述。
阅读全文