//20、输入10个学生5门课的成绩,分别用函数实现以下功能: //①计算每个学生的平均分; //②计算每门课的平均分; //③求出每门课的最高分。
时间: 2023-07-07 14:35:55 浏览: 155
编写程序,输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息 学生信息包括学号、姓名、成绩
好的,我来为您提供解答。以下是实现上述功能的代码:
```cpp
#include <iostream>
using namespace std;
const int STUDENT_NUM = 10; // 学生人数
const int COURSE_NUM = 5; // 课程数
// 计算每个学生的平均分
void calcAvgScoreByStudent(double scores[][COURSE_NUM]) {
for (int i = 0; i < STUDENT_NUM; i++) {
double sum = 0;
for (int j = 0; j < COURSE_NUM; j++) {
sum += scores[i][j];
}
double avg = sum / COURSE_NUM;
cout << "第 " << i + 1 << " 个学生的平均分是:" << avg << endl;
}
}
// 计算每门课的平均分
void calcAvgScoreByCourse(double scores[][COURSE_NUM]) {
for (int j = 0; j < COURSE_NUM; j++) {
double sum = 0;
for (int i = 0; i < STUDENT_NUM; i++) {
sum += scores[i][j];
}
double avg = sum / STUDENT_NUM;
cout << "第 " << j + 1 << " 门课的平均分是:" << avg << endl;
}
}
// 求出每门课的最高分
void findMaxScoreByCourse(double scores[][COURSE_NUM]) {
for (int j = 0; j < COURSE_NUM; j++) {
double maxScore = scores[0][j];
for (int i = 1; i < STUDENT_NUM; i++) {
if (scores[i][j] > maxScore) {
maxScore = scores[i][j];
}
}
cout << "第 " << j + 1 << " 门课的最高分是:" << maxScore << endl;
}
}
int main() {
double scores[STUDENT_NUM][COURSE_NUM];
cout << "请输入每个学生的 5 门课程成绩:" << endl;
for (int i = 0; i < STUDENT_NUM; i++) {
cout << "请输入第 " << i + 1 << " 个学生的成绩:";
for (int j = 0; j < COURSE_NUM; j++) {
cin >> scores[i][j];
}
}
cout << endl;
calcAvgScoreByStudent(scores);
cout << endl;
calcAvgScoreByCourse(scores);
cout << endl;
findMaxScoreByCourse(scores);
return 0;
}
```
这个程序分别定义了三个函数 `calcAvgScoreByStudent`、`calcAvgScoreByCourse` 和 `findMaxScoreByCourse` 实现题目所要求的三个功能,主函数中则是定义了一个二维数组 `scores` 来存储学生成绩,并且调用了三个函数来输出结果。
阅读全文