用二维数组存放一个班级(10人)的语文、数学、外语成绩,接下来编写一个程序分别求出各科成绩中的平均值、暈大值、暈小
时间: 2024-10-17 21:12:42 浏览: 168
二维数组可以有效地表示一个班级的成绩数据,其中每一行代表一个学生,每一列对应一门学科。假设数组名为`classGrades`,结构如下:
```java
int[][] classGrades = {
{语文成绩1, 数学成绩1, 外语成绩1},
{语文成绩2, 数学成绩2, 外语成绩2},
// ...一直重复到第10个学生
{语文成绩10, 数学成绩10, 外语成绩10}
};
```
要编写程序计算各科的平均值、最大值和最小值,你可以按照以下步骤操作:
1. 初始化变量存储每科的总分、最高分和最低分,并设置初始值为数组的第一行。
2. 遍历整个数组,除了第一行(因为那是学生的标识),对每门课的分数进行累加、更新最大值和最小值。
3. 计算平均值:将每科的总分除以学生人数得到平均分。
以下是简单的Java示例代码:
```java
int totalStudents = 10;
double[] averages = new double[3]; // 用于存储各科平均值
int[][] grades = { /* 类似上述的二维数组 */ };
// 计算平均值
for (int i = 0; i < totalStudents; i++) {
for (int j = 1; j < 3; j++) { // 从第二行开始
averages[j - 1] += grades[i][j];
}
}
for (int i = 0; i < averages.length; i++) {
averages[i] /= totalStudents;
}
// 计算最大值和最小值
int maxIndex = 0;
int minIndex = 0;
int maxValue = grades[0][1], minValue = grades[0][1]; // 假设所有科目都从第二列开始
for (int i = 0; i < totalStudents; i++) {
if (grades[i][1] > maxValue) {
maxValue = grades[i][1];
maxIndex = i;
} else if (grades[i][1] < minValue) {
minValue = grades[i][1];
minIndex = i;
}
}
// 输出结果
System.out.println("语文平均值:" + averages[0]);
System.out.println("数学最大值:" + grades[maxIndex][1] + "(学生" + (maxIndex + 1) + ")");
System.out.println("数学最小值:" + grades[minIndex][1] + "(学生" + (minIndex + 1) + ")");
// 同理,处理外语和其他科目的值
阅读全文