解题思路:
和上一个题解题思路一样,唯一不同的就是需要求出各科平均成绩和输出最高分的信息
可设定一个变量来记录当前最高分,并循环遍历结构体数组,拿到最高分的值于下标,输出最高分即可
注意事项:
参考代码:
#include<iostream>
using namespace std;
int ab, bc, ca;//abc为各科的平均成绩
struct student {
string id;//学号
string name;//姓名
int score1;//成绩1
int score2;//成绩2
int score3;//成绩3
};
void input(student s[], int a)//输入函数
{
for (int i = 0; i < a; i++)
{
cin >> s[i].id >> s[i].name >> s[i].score1 >> s[i].score2 >> s[i].score3;
}
}
void print(student s[], int abs)//输出函数
{
for (int i = 0; i < abs; i++)//求平均成绩
{
ab += s[i].score1;
bc += s[i].score2;
ca += s[i].score3;
}
ab /= abs;
bc /= abs;
ca /= abs;
cout << ab << " " << bc << " " << ca << endl;//输出平均成绩
int d;//用于记录当前数
int e = 0;//用于记录最大数
int f;//用于记录最大数的下标
for (int i = 0; i < abs; i++)
{
d = s[i].score1 + s[i].score2 + s[i].score3;
if (d > e)
{
e = d;
f = i;
}
}
cout << s[f].id << " " << s[f].name << " " << s[f].score1 << " " << s[f].score2 << " " << s[f].score3;
}
int main()
{
int a;
cin >> a;//输入学生人数
student s[100];//结构体数组
input(s, a);//输入函数
print(s, a);//输出函数
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:583 |
简单的a+b (C语言代码)浏览:764 |
C语言训练-最大数问题 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:611 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:658 |
WU-判定字符位置 (C++代码)浏览:1471 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:487 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:366 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:388 |
sizeof的大作用 (C语言代码)浏览:1138 |