结构体写的,用冒泡,总感觉少了一层排序
#include<bits/stdc++.h>
using namespace std;
struct stu{
string s;
int n,y,r;
}stu[10050];
int m,i,j;
int main(){
cin>>m;
for(i=1;i<=m;i++){
cin>>stu[i].s>>stu[i].n>>stu[i].y>>stu[i].r;
}
for(i=1;i<=m;i++){
for(j=m;j>i;j--){
if(stu[i].n>stu[i+1].n){
swap(stu[i].s,stu[i+1].s);
swap(stu[i].n,stu[i+1].n);
swap(stu[i].y,stu[i+1].y);
swap(stu[i].r,stu[i+1].r);
}else if(stu[i].n==stu[i+1].n&&stu[i].y>stu[i].y){
swap(stu[i].s,stu[i+1].s);
swap(stu[i].n,stu[i+1].n);
swap(stu[i].y,stu[i+1].y);
swap(stu[i].r,stu[i+1].r);
}else if(stu[i].n==stu[i+1].n&&stu[i].y==stu[i+1].y&&stu[i].r>stu[i+1].r){
swap(stu[i].s,stu[i+1].s);
swap(stu[i].n,stu[i+1].n);
swap(stu[i].y,stu[i+1].y);
swap(stu[i].r,stu[i+1].r);
}
}
}
for(i=1;i<=m;i++){
cout<<stu[i].s<<endl;
}
return 0;
}
不知道上面的循环有没有问题,如果有 @ 我啊