70分求助!!!

P1093 [NOIP2007 普及组] 奖学金

H2230823083 @ 2023-07-23 21:38:21

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int cmp(int a,int b)
{
    return a>b;
}
int main()
{
    int n,gg=0;
    int i;
    int y;
    int arr[305];//语文成绩
    int brr[305];//数学成绩
    int crr[305];//英语成绩
    int srr[305];//总分
    int grr[305];//总分备份
    int j;
    int temp;
    int sum=0;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>arr[i]>>brr[i]>>crr[i];
    }
    for(i=0;i<n;i++)
    {
        srr[i]=arr[i]+brr[i]+crr[i];
        grr[i]=arr[i]+brr[i]+crr[i];
    }
    sort(srr,srr+n,cmp);//排序
    y=unique(srr,srr+n)-srr;//去重
    for(i=0;i<y;i++)
    {
        if(gg==5)
            break;      
            for(j=0;j<n;j++)
        {
            if(srr[i]==grr[j])
            {
                if(gg==5)
                break;
                cout<<j+1<<" "<<srr[i]<<endl;               
                gg++;
            }
        }       
    }
    return 0;
} 

by AceKnightPuppet @ 2023-07-23 21:50:13

#include <bits/stdc++.h>
using namespace std;
struct student{
    int a,b,c,sum,cnt;
};
student st[1005];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>st[i].a>>st[i].b>>st[i].c;
        st[i].sum=st[i].a+st[i].b+st[i].c;
        st[i].cnt=i;
    }
    for(int i=1;i<=n;i++)
    for(int j=2;j<=n;j++){
        if(st[j-1].sum<st[j].sum) swap(st[j],st[j-1]);
        if(st[j].sum==st[j-1].sum){
            if(st[j-1].a<st[j].a) swap(st[j],st[j-1]);
        if(st[j-1].a==st[j].a){
            if(st[j].cnt<st[j-1].cnt) swap(st[j],st[j-1]);
        }
    }
        }
    for(int i=1;i<=5;i++){
        cout<<st[i].cnt<<" "<<st[i].sum<<endl;
    }
    return 0;
}

100分


by JYW2011 @ 2023-07-23 21:50:20

Chat原话


by H2230823083 @ 2023-07-23 22:09:45

@JYW2011 这不是跟没改一样吗?


by H2230823083 @ 2023-07-23 22:14:38

@AceKnightPuppet 可以看看我的错在哪里吗QvQ


by AceKnightPuppet @ 2023-07-24 20:04:51

@H2230823083 你这种写法我看不懂,私信吧,你讲一下你的思路


|