70分求助

P1093 [NOIP2007 普及组] 奖学金

wypdyxfor163 @ 2019-06-10 20:32:16

include<cstdio>

include<algorithm>

include<cmath>

using namespace std;

int num[305],tot[305],yu[305];

int main()

{

int n;

scanf("%d",&n);

for (int i=1;i<=n;i++)

{

    int shu,ying;

                     scanf("%d%d%d",&yu[i],&shu,&ying);

    tot[i]=yu[i]+shu+ying;

    num [i]=i;

}

for(int i=1;i<=n;i++)

{

    for(int 

j=i;j<=n;j++)

        if(tot[i]<tot[j]||(tot[i]==tot[j]&&yu[i]==yu[j]&&num[i]>num[j]))

        {

            swap(num[i] ,num[j]);

            swap(yu[i] ,yu[j]);

            swap(tot[i] ,tot[j]);

        }

}

for(int i=1;i<=5;i++)
    printf("%d %d\n",num[i],tot[i]);

return 0;

}


by _H1kar1 @ 2019-06-10 20:55:48

希望更丰富的展现?使用Markdown @wypdyxfor163


by 焚魂 @ 2019-07-11 22:35:48

我给你四点建议: 1.把数组开大10 2.排序里面的if分开写,用1个if,2个else if 3.可以用结构体,这样简洁明了,没学可以在网上查找资料看一看。 4注意一下细节,最后输出的时候多了一个回车,这在比赛里面是按照错误处理的,不管什么比赛,只要严格一点的


|