解题思路:

和上一个题解题思路一样,唯一不同的就是需要求出各科平均成绩和输出最高分的信息

可设定一个变量来记录当前最高分,并循环遍历结构体数组,拿到最高分的值于下标,输出最高分即可

注意事项:

参考代码:

#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论