问题标题: 酷町堂:6449求解 谢谢!

1
0
已解决
马奕阳
马奕阳
中级守护
中级守护

在期末考试结束后,已知了学生的姓名和学号,以及他们语数英三门课的成绩,请聪明的你按照总分降序排序,并输出排序后所有学生的姓名。

输入描述 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;
}


0
已采纳
杜海平
杜海平
中级守护
中级守护

少了学号,望采纳

0
0
薛文博
薛文博
高级光能
高级光能

输入小于40的学生人数,输入学生姓名用循环,表示几个学生就循环多少次。

0
我要回答