讨论 / 题目中没有提到N的范围,但是也很简单
Misha 2013-12-08 03: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++;

}

}

查看更多回复
提交回复