Misha 2013-12-07 11:45:45
点我顶贴
收藏
删除
简单的排序,关键数据只有语文成绩和总分。读入的时候记录顺序(顺序=学号);按照题目的要求,第一关键字总分,然后第二关键字语文成绩,最后小的学号在前。
#include<iostream>
using namespace std;
int main(){
int n,i,j,b,c,sum[1000],num[1000],a[1000];
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i]>>b>>c;
sum[i]=a[i]+b+c;
num[i]=i;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(sum[i]>sum[j]){
swap(sum[i],sum[j]);
swap(a[i],a[j]);
swap(num[i],num[j]);
}
i=1;
while(i<=5){
if(sum[i]==sum[i+1]){
if(a[i]<a[i+1]){
swap(sum[i],sum[i+1]);
swap(num[i],num[i+1]);
swap(a[i],a[i+1]);
}
if(a[i]==a[i+1]&&num[i]>num[i+1]){
swap(sum[i],sum[i+1]);
swap(num[i],num[i+1]);
swap(a[i],a[i+1]);
}
}
cout<<num[i]<<" "<<sum[i]<<'\n';
i++;
}
}