1
已解决
马奕阳
中级守护
中级守护
在期末考试结束后,已知了学生的姓名和学号,以及他们语数英三门课的成绩,请聪明的你按照总分降序排序,并输出排序后所有学生的姓名。
输入描述 Input De**ion
第一行输入一个正整数n(n<=40),表示学生人数
接下来n行,每行输入一名学生的信息,包括姓名、学号、语数英分数。
输出描述 Output De**ion
输出n行学生的姓名(按总分降序排序)。
样例输入 Sample Input
3 zhangsan 1 80 95 70 lisi 2 90 100 95 wangwu 3 85 90 80
样例输出 Sample Output
lisi wangwu zhangsan
#include<iostream>
#include<algorithm>
using namespace std;
struct stu{
string name;
int b,c,d;
int sum(){
return b+c+d;
}
} a[45];
bool cmp(stu x,stu y){
return x.sum()>y.sum();
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].b>>a[i].c>>a[i].d;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].name<<endl;
}
return 0;
}