#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct stu{ // 定义一个结构体
int index;
string name;
int grade;
};
int cmp0(const stu &a, const stu &b){ // 自定义排序方法
if(a.grade == b.grade)
return a.index < b.index;
else
return a.grade > b.grade;
}
int cmp1(const stu &a, const stu &b){
if(a.grade == b.grade)
return a.index < b.index;
else
return a.grade < b.grade;
}
int main(){
int n, cmp;
struct stu arr[50];
cin>>n>>cmp;
for(int i = 0; i < n; i++){
arr[i].index = i;
cin>>arr[i].name>>arr[i].grade; // 输入
}
if(cmp == 0)
sort(arr, arr + n, cmp0);
else
sort(arr, arr + n, cmp1);
for(int i = 0; i < n; i++)
cout<<arr[i].name<<" "<<arr[i].grade<<endl;
return 0;
}
成绩排序 (结构体+自定义排序)
最新推荐文章于 2025-02-21 14:39:32 发布