3010 奖学金2 结构体 排序基础
#include<bits/stdc++.h> using namespace std; struct node{ int yw,sx,yy,zf,id; }; node a[301]; bool comp(node a,node b) { //总分高优先,总分相同,语文成绩高优先,语文相同,顺序小优先 if(a.zf==b.zf){ if(a.yw==b.yw)return a.id<b.id; else return a.yw>b.yw; } else return a.zf>b.zf; } int main() { //1.定义变量 int n; //2.输入数据 cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].yw>>a[i].sx>>a[i].yy; a[i].id = i; a[i].zf = a[i].yw+a[i].sx+a[i].yy; } sort(a+1,a+1+n,comp); for(int i=1;i<=5;i++) cout<<a[i].id<<" "<<a[i].zf<<endl; return 0; }