解题思路:
和上一个题解题思路一样,唯一不同的就是需要求出各科平均成绩和输出最高分的信息
可设定一个变量来记录当前最高分,并循环遍历结构体数组,拿到最高分的值于下标,输出最高分即可
注意事项:
参考代码:
#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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复