题目大意:班上一共有
n 名同学。
每个同学的名字都是一个长度小于
10
、由小写英文字母构成的字符串,有可能存在重名的同学。
每个同学都有语数英三门课的成绩,每门课的成绩都是一个
0
∼
100
范围内的整数,按照 名字.语文成绩.数学成绩.英语成绩 的格式给出。
请按照总分从大到小的顺序输出每个人名字,总分相同时按照输入顺序从前到后输出。
#include<bits/stdc++.h>
using namespace std;
struct stu
{
string na;
int ch,ma,en,zong;
}a[1005];
int cmp(stu x,stu y)
{
return x.zong>y.zong;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
char c;
cin>>a[i].na>>c>>a[i].ch>>c>>a[i].ma>>c>>a[i].en;
a[i].zong=a[i].ch+a[i].ma+a[i].en;
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
{
cout<<a[i].na<<endl;
}
return 0;
}
连样例都没过