ganmu


私信TA

用户名:dotcpp0726067

访问量:3487

签 名:

等  级
排  名 1522
经  验 2812
参赛次数 0
文章发表 104
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

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

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

注意事项:

参考代码:

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

  评论区

  • «
  • »