某班共有若干名学生,学生信息用如下的stuinfo结构表示,其中,男学生则gender取值为’m’,女学生则gender取值为’f’。2022年春季学期4门课程的成绩依次保存在score1~score4中。请编写函数double statistics(stuinfo stus[], int n)分别统计男生4门课程总分的平均分,以及女生4门课程总分的平均分,其中stus数组存储了班上所有学生的信息,n为班上学生的总人数。函数最后返回男生总分平均分减去女生总分平均分的结果(浮点数)。不引入其他函数,在program和end完成以下代码: #include <iostream> #include<string> using namespace std; struct stuinfo { int id; // 学号 string name; // 姓名 char gender; // 性别 int score1; // 课程1成绩 int score2; // 课程2成绩 int score3; // 课程3成绩 int score4; // 课程4成绩 }; double statistics(stuinfo stus[], int n) { /**********Program**********/
时间: 2024-01-17 19:32:25 浏览: 82
下面是实现函数statistics的代码:
```cpp
double statistics(stuinfo stus[], int n)
{
double maleTotal = 0.0; // 男生总分
double femaleTotal = 0.0; // 女生总分
int maleCount = 0; // 男生人数
int femaleCount = 0; // 女生人数
for (int i = 0; i < n; i++) {
if (stus[i].gender == 'm') { // 如果是男生
maleTotal += stus[i].score1 + stus[i].score2 + stus[i].score3 + stus[i].score4;
maleCount++;
} else if (stus[i].gender == 'f') { // 如果是女生
femaleTotal += stus[i].score1 + stus[i].score2 + stus[i].score3 + stus[i].score4;
femaleCount++;
}
}
double maleAverage = maleTotal / (maleCount * 4); // 男生平均分
double femaleAverage = femaleTotal / (femaleCount * 4); // 女生平均分
return maleAverage - femaleAverage; // 返回男生总分平均分减去女生总分平均分的结果
}
```
此函数遍历学生数组,根据学生的性别统计男生和女生的总分,并计算出平均分。最后返回男生总分平均分减去女生总分平均分的结果。
阅读全文