- 奖学金
- 2014-12-17 21:39:37 @
#include<iostream>
using namespace std;
struct Stu
{
int No;
int Chinese;
int Math;
int English;
int Sum;
}s[302];
void Szpx(Stu a[],int n)//总体排序
{
for(int i=1;i<n;i++)
{
Stu key;
key=a[i];
int k=i-1;
while(a[k].Sum<key.Sum&&k>=0)
{
a[k+1]=a[k];
k--;
}
a[k+1]=key;
}
}
void Swap(Stu&a,Stu&b)//依语文成绩排序
{
Stu t;
if(a.Sum==b.Sum&&b.Chinese>a.Chinese)
{
t=b;
b=a;
a=t;
}
}
void Swap2(Stu&a,Stu&b)//依学号排序
{
Stu t;
if(a.Sum==b.Sum&&a.Chinese==b.Chinese&&(b.No<a.No))
{
t=b;b=a;a=t;
}
}
void SzpxC_N(Stu a[])//上述两个排序混在一起
{
for(int i=0;i<5;i++)
{
Swap(a[i],a[i+1]);
}
for(int i=0;i<5;i++)
{
Swap2(a[i],a[i+1]);
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
s[i].No=i+1;
cin>>s[i].Chinese;
cin>>s[i].Math;
cin>>s[i].English;
s[i].Sum=s[i].Chinese+s[i].Math+s[i].English;
}
Szpx(s,n);
for(int i=0;i<5;i++)
{
cout<<s[i].No<<" "<<s[i].Sum<<endl;
}
}
1 条评论
-
陈厚铭 LV 10 @ 2016-06-06 15:39:47
函数SzpxC_N() 没有用上啊
- 1