SCLBJKD @ 2018-09-26 17:24:23
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,ma,en,t,flag=0,ans[100005][2],ch[100005];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>ch[i]>>ma>>en;
ans[i][1]=ch[i]+ma+en;
ans[i][2]=i;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(ans[i][1]>ans[j][1])
{
t=ans[i][1];
ans[i][1]=ans[j][1];
ans[j][1]=t;
t=ans[i][2];
ans[i][2]=ans[j][2];
ans[j][2]=t;
}
}
for(int i=n;i>=n-5;i--)
{
if(flag==i) continue;
if(ans[i-1][1]<ans[i][1]) cout<<ans[i][2]<<" "<<ans[i][1];
else if(ans[i-1][1]>ans[i][1])
{
cout<<ans[i-1][2]<<" "<<ans[i-1][1]<<endl<<ans[i][2]<<" "<<ans[i][1];
flag=i-1;
}
else
{
flag=i-1;
if(ch[i]>ch[i-1]) cout<<ans[i][2]<<" "<<ans[i][1]<<endl<<ans[i-1][2]<<" "<<ans[i-1][1];
else if(ch[i]<ch[i-1]) cout<<ans[i-1][2]<<" "<<ans[i-1][1]<<endl<<ans[i][2]<<" "<<ans[i][1];
else
{
if(ans[i][2]>ans[i-1][2]) cout<<ans[i-1][2]<<" "<<ans[i-1][1]<<endl<<ans[i][2]<<" "<<ans[i][1];
else if(ans[i][2]<ans[i-1][2]) cout<<ans[i][2]<<" "<<ans[i][1]<<endl<<ans[i-1][2]<<" "<<ans[i-1][1];
}
}
}
}
by kanesada @ 2018-09-26 17:40:41
排序有问题呀…不能只处理总分,要在排序的时候就考虑学号和语文分。
数组也不对,c++的数组a[n]实际上是a[0,1,2,...n-1]这样,n下标是无效的,要多开一位才行。