4
gaoxiang 78 96
liujia 90 87
zhangjin 78 90
wangxi 70 98
liujia 177
gaoxiang 174
wangxi 168
zhangjin 168
#include<bits/stdc++.h> using namespace std; struct cj { string xm;//定义姓名 int yw;//语文 int sx;//数学 int zf;//总分 }; bool cmp(cj x,cj y)//排序条件 { if(x.zf!=y.zf) return x.zf>y.zf;//按总分成绩从高到低排 else return x.xm<y.xm;//按姓名从低到高排 } int main() { int n; cin>>n; cj a[n+2];//定义数组为数据结构类型 for(int i=1;i<=n;i++) { cin>>a[i].xm>>a[i].yw>>a[i].sx;//输入成绩 a[i].zf=a[i].sx+a[i].yw;//计算总分成绩 } sort(a+1,a+n+1,cmp);//排序 for(int i=1;i<=n;i++) cout<<a[i].xm<<" "<<a[i].zf<<endl;//输出 return 0; }