问题标题: 酷町堂:1485 只得了83分,谢谢

0
0
已解决
李明翰
李明翰
新手光能
新手光能

#include <bits/stdc++.h>
using namespace std;
struct ld{
    string name;
    int age,yi,er,san,si;
    int id;
}a[10001];
bool cmp(ld a,ld b){
    if(a.yi+a.er+a.san+a.si!=b.yi+b.er+b.san+b.si ) return a.yi+a.er+a.san+a.si>b.yi+b.er+b.san+b.si;
    return a.id>b.id;
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].name>>a[i].age>>a[i].yi>>a[i].er>>a[i].san>>a[i].si;
        a[i].id=i;
    }
    for(int i=1;i<=n;i++){
        cout<<a[i].name<<" "<<a[i].age<<" "<<a[i].yi+a[i].er+a[i].san+a[i].si<<endl;
    }
    sort(a+1,a+1+n,cmp);
    cout<<a[1].name;
    return 0;
}
 


0
已采纳
毛润宇
毛润宇
新手天翼
新手天翼

在你输出的最后一个名字,也就是总分最高的同学姓名,你没发现你连样例都没过吗,样例是Zhangsan,你输出Wangwu,注意,最先输入是学号越小越好,把你的return a.id>b.id改成return a.id<b.id就ac了

0
0
0
0
0
丁浩然
丁浩然
新手光能
新手光能

可以在定义一个结构体成员为总分,直接在cmp中比较总

 

0
我要回答