期末考试刚刚结束,学校每学期都会对各班期末成绩总分前三名的学生进行奖励,现在明明知道本班同学的姓名、语文、数学和英语成绩,他想知道获得奖学金的三位同学的姓名及各科成绩。
输入格式
第一行输入n,代表n个学生(5<=n<=25)
接下来的n行,每一行代表学生的语文成绩、数学成绩、英语成绩。
输出格式
总分前三名同学的名字及语数英成绩。
输入/输出例子1
输入:
6
chenxiaoming 98 99 95
lixiaoming 96 79 85
chenxiaohong 93 99 94
weihong 90 73 91
liangwei 95 93 94
liangshu 90 83 54
输出:
chenxiaoming 98 99 95
chenxiaohong 93 99 94
liangwei 95 93 94
这道题我们主要是用来复习struct结构体
代码:
#include<bits/stdc++.h>
using namespace std;
struct studata{
string name;
int yu,shu,ying,sum;
};
studata stu[30],t;
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>stu[i].name>>stu[i].yu>>stu[i].shu>>stu[i].ying;
stu[i].sum=stu[i].yu+stu[i].shu+stu[i].ying;
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(stu[i].sum<stu[j].sum) t=stu[i],stu[i]=stu[j],stu[j]=t;
}
}
for(int i=1;i<=3;i++){
cout<<stu[i].name<<" "<<stu[i].yu<<" "<<stu[i].shu<<" "<<stu[i].ying<<endl;
}
return 0;
}