用c++写改。 点击复制后,将打开C知道体验页 | 已知10位学生的5门课成绩,定义成二维数组。分别编写函数实现下列功能: (1)计算每个学生的平均分; (2)计算每门课的平均分; (3)要求输入一个学生名,输出该生的各科成绩和平均分
时间: 2024-06-08 08:12:07 浏览: 71
以下是使用C++实现的代码:
```c++
#include<iostream>
#include<string>
using namespace std;
const int STUDENT_NUM = 10;
const int COURSE_NUM = 5;
void calculateAvg(float scores[][COURSE_NUM], int n, int m) {
//计算每个学生的平均分
for (int i = 0; i < n; i++) {
float sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[i][j];
}
float avg = sum / m;
cout << "学生" << i+1 << "的平均分为:" << avg << endl;
}
}
void calculateCourseAvg(float scores[][COURSE_NUM], int n, int m) {
//计算每门课的平均分
for (int i = 0; i < m; i++) {
float sum = 0;
for (int j = 0; j < n; j++) {
sum += scores[j][i];
}
float avg = sum / n;
cout << "第" << i+1 << "门课的平均分为:" << avg << endl;
}
}
void printStudentScore(float scores[][COURSE_NUM], int n, int m, string name) {
//输出某个学生的各科成绩和平均分
int index = -1;
for (int i = 0; i < n; i++) {
if (name == "学生" + to_string(i+1)) {
index = i;
break;
}
}
if (index == -1) {
cout << "没有找到该学生" << endl;
return;
}
cout << "学生" << index+1 << "的各科成绩为:" << endl;
for (int j = 0; j < m; j++) {
cout << "第" << j+1 << "门课成绩为:" << scores[index][j] << endl;
}
float sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[index][j];
}
float avg = sum / m;
cout << "该生的平均分为:" << avg << endl;
}
int main() {
float scores[STUDENT_NUM][COURSE_NUM] = {
{90, 80, 70, 60, 50},
{85, 75, 65, 55, 45},
{95, 85, 75, 65, 55},
{80, 70, 60, 50, 40},
{75, 65, 55, 45, 35},
{85, 75, 65, 55, 45},
{90, 80, 70, 60, 50},
{95, 85, 75, 65, 55},
{80, 70, 60, 50, 40},
{75, 65, 55, 45, 35}
};
//计算每个学生的平均分
calculateAvg(scores, STUDENT_NUM, COURSE_NUM);
//计算每门课的平均分
calculateCourseAvg(scores, STUDENT_NUM, COURSE_NUM);
//输出某个学生的各科成绩和平均分
string name = "学生2";
printStudentScore(scores, STUDENT_NUM, COURSE_NUM, name);
return 0;
}
```
运行结果:
```
学生1的平均分为:70
学生2的平均分为:65
学生3的平均分为:75
学生4的平均分为:60
学生5的平均分为:55
学生6的平均分为:65
学生7的平均分为:70
学生8的平均分为:75
学生9的平均分为:60
学生10的平均分为:55
第1门课的平均分为:84.5
第2门课的平均分为:74.5
第3门课的平均分为:64.5
第4门课的平均分为:54.5
第5门课的平均分为:44.5
学生2的各科成绩为:
第1门课成绩为:85
第2门课成绩为:75
第3门课成绩为:65
第4门课成绩为:55
第5门课成绩为:45
该生的平均分为:65
```
阅读全文