90分求助

P5740 【深基7.例9】最厉害的学生

Cogito_ @ 2021-12-01 17:37:14

#include<bits/stdc++.h>
using namespace std;

struct Stu{
    string _name;
    int _s1;
    int _s2;
    int _s3;
    int _sRes;
}_myArray[1005];
int _num;

bool cmp(Stu,Stu);
void ParseIn(){

    cin>>_num;
    for(int i=0;i<_num;i++){
        cin>>_myArray[i]._name>>_myArray[i]._s1>>_myArray[i]._s2>>_myArray[i]._s3;
        _myArray[i]._sRes=_myArray[i]._s1+_myArray[i]._s2+_myArray[i]._s3;
    }

}
void Core(){

    sort(_myArray,_myArray+_num,cmp);

}
void CWriteOut(){

    cout<<_myArray[0]._name<<' '<<_myArray[0]._s1<<' '<<_myArray[0]._s2<<' '<<_myArray[0]._s3<<endl;

}
int main(){
    ParseIn();
    Core();
    CWriteOut();

    return 0;
} 
bool cmp(Stu a,Stu b){

    if(a._sRes>b._sRes){
        return 1;
    }
    return 0;
} 

by LYqwq @ 2021-12-04 22:37:55

@裴锴霖_lin 把_myArray[0]的任意一项设为 -1 就行了,有组数据输入的分数全是 0,这导致_name没更新,坑死人


by Michaelzjh @ 2021-12-04 22:44:21

我刚刚刚也是卡在这了,坑死人,真的是。qwq


by Cogito_ @ 2021-12-06 10:35:25

@LYqwq 谢谢大佬


by Cheney__22 @ 2021-12-19 14:09:21

同样的错误,感谢大佬

第一个测试点也是一样的问题,给出来的数据全部都是0 0 0

把累加变量的初值给成一个负数就好了


|