结构体——各门课的成绩

问题 B: 各门课的成绩 课后习题11.5

时间限制: 1 Sec  内存限制: 128 MB
提交: 284  解决: 210
[提交][状态][讨论版][命题人:外部导入]

题目描述

有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)

输入

学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。

输出

各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)

样例输入

2
1 blue 90 80 70
b clan 80 70 60

样例输出

85 75 65
1 blue 90 80 70
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
//定义结构体包括六个变量:学号,姓名,三科成绩,3门课的总成绩
struct student
{
    string number;
    string name;
    double score1,score2,score3;
    double score_sum;
}s[1000];
int main()
{
    //定义学生数量
    int student_number;
    //定义三门课总分
    double class1_sum=0,class2_sum=0,class3_sum=0;
    //定义总分最大值初始化0
    double score_max=0;
    //定义标记
    int mark;
    cin>>student_number;
    for(int i=0;i<student_number;i++)
    {
        cin>>s[i].number>>s[i].name>>s[i].score1>>s[i].score2>>s[i].score3;
        //更新三门课各科的总成绩
        class1_sum+=s[i].score1;
        class2_sum+=s[i].score2;
        class3_sum+=s[i].score3;
        s[i].score_sum=s[i].score1+s[i].score2+s[i].score3;
        //更新总分最大值,标记这个学生
        if(s[i].score_sum>score_max)
        {
            score_max=s[i].score_sum;
            mark=i;
        }
    }
    cout<<class1_sum/student_number<<" "<<class2_sum/student_number<<" "<<class3_sum/student_number<<endl;
    cout<<s[mark].number<<" "<<s[mark].name<<" "<<s[mark].score1<<" "<<s[mark].score2<<" "<<s[mark].score3<<endl;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章