[NKU]C++基础课(五)补充:结构体
【3.3】C++结构体介绍_哔哩哔哩_bilibili
结构体
最厉害的学生
现有N名同学参加了期末考试,并且获得了每名同学的信息:
1 姓名(不超过8个字符的仅有英文小写字母的字符串)
2 语文、数学、英语成绩(均为不超过150的自然数)。
3 总分最高的学生就是最厉害的。
请输出最厉害的学生各项信息(姓名、各科成绩)。
如果有多个总分相同的学生,输出靠前的那位。
输入格式
1 第一行输入一个正整数 N,表示学生个数。
2 第二行开始,往下N行,对于每一行首先先输入一个字符串表示学生姓名,
再输入三个自然数表示语文、数学、英语的成绩。
均用空格相隔。
输入格式:最厉害的学生
#include<iostream>
using namespace std;const int maxn = 1000;struct Student{string name;int chinese;int math;int english;int getsum(){return chinese+math+english; }
};int n;
Student s[maxn]; // s 是一个包含多个 Student 对象的数组int main(){cin >> n; int best = 1;for (int i=1; i <=n; ++i){cin >> s[i].name >> s[i].chinese >> s[i].math >> s[i].english;if (s[i].getsum()>s[best].getsum()){best = i;}}cout << s[best].name << " " << s[best].chinese << " " << s[best].math << " " << s[best].english << endl; return 0;
}
假设输入
3
Alice 80 90 70
Bob 85 95 75
Charlie 70 80 60
输出为 Bob 85 95 75