80分求助

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

m1895 @ 2021-05-03 09:26:57

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int a;
    cin>>a;
    struct student{
        char name[20];
        int c;
        int m;
        int e;
        int z;
    }M[a+1];
    for(int i=0;i<a;i++)
    {
        cin>>M[i].name>>M[i].c>>M[i].m>>M[i].e;
        M[i].z=M[i].c+M[i].m+M[i].e;    
    }
    for(int i=0;i<a;i++)
    {
        for(int j=i+1;j<=a;j++)
        {
            if(M[i].z>=M[j].z)
            {
                cout<<M[i].name<<" "<<M[i].c<<" "<<M[i].m<<" "<<M[i].e;
                return 0;
            } 
            else if(M[j].z>M[i].z)
            {
                cout<<M[j].name<<" "<<M[j].c<<" "<<M[j].m<<" "<<M[j].e;
                return 0;
            } 
        }
    }
    return 0;
}

求助,第三个点过不了


by 老牧童与戈戈 @ 2021-05-15 18:43:41

要输出总分最高且最靠前的,你这个只是输出了总分最高的


by m1895 @ 2021-05-17 17:08:07

@老牧童与戈戈 但是我错的点只有一个人。。。


by 老牧童与戈戈 @ 2021-05-17 19:16:47

建议用sort


by 老牧童与戈戈 @ 2021-05-17 19:17:38

你这个只有一个人的情况下要特判,不然不会输出


by m1895 @ 2021-05-19 18:20:50

谢谢


|