标题P1093奖学金
题目描述:
1.根据成绩对学生进行排名(语数英),先看总分,相同看语文,相同序号小的在前
2.目的:输出前五的学生学号和总分
3.第一行:人数
第二以后:语数英(默认序号1-n)
j
结构体函数
思路
1.结构体函数(同一对象对应多个变量或者数组,编号,语数英分数,总分)
2.sort函数(bool值判断)排序(结构体比较,使用else)
3.注意循环时录入编号,之后才对应输入成绩
在这里插入代码片
#include
#include
using namespace std;
struct stu
{
int num;
int yw,sx,yy;
int sum;
}student[310];
bool cmp(stu a,stu b)//结构体比较
{
if(a.sum>b.sum ) return 1;
else if(a.sum<b.sum) return 0;
else
{
if(a.yw>b.yw) return 1;
else if(a.yw<b.yw) return 0;
else
{
if(a.num<b.num) return 1;
else return 0;
}
}
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
student[i].num=i;//序号
cin>>student[i].yw>>student[i].sx>>student[i].yy;
student[i].sum=student[i].yw+student[i].sx+student[i].yy;
}
sort(student+1,student+n+1,cmp);
for(int i=1;i<=5;i++)
{
cout<<student[i].num<<’ '<<student[i].sum<<endl;
}
return 0;
}