結構體——各門課的成績

問題 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;
}

 

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