题目描述 输入N个学生的姓名和语文、数学的得分,按总分从高到低输出。分数相同的按输入先后输出。
输入格式 第1行:有1个整数N,N的范围是[1…100]。
下面有N行:每行1个姓名,2个整数。姓名是由不超过10个的小写字母组成,整数范围是[0…100]。
输出格式 总分排序后的名单。
共N行,每行格式: 姓名 语文分 数学分 总分。
输入/输出例子1 输入:
4
gaoxiang 78 96
wangxi 70 99
liujia 90 87
zhangjin 78 91
输出:
liujia 90 87 177
gaoxiang 78 96 174
wangxi 70 99 169
zhangjin 78 91 169
#include<bits/stdc++.h>
using namespace std;
struct people{
string name;
int y;
int s;
int z,l;
};
bool cmp(struct people a,struct people b){
if(a.y!=b.y){
return a.y>b.y;
}
else{
return a.l<b.l;
}
}
struct people a[105];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].y>>a[i].s;
a[i].z=a[i].y+a[i].s;a[i].l=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].name<<" "<<a[i].y<<" "<<a[i].s<<" "<<a[i].z<<endl;
}
return 0;
}
这个代码哪里错了