题目
成绩排序_牛客题霸_牛客网 (nowcoder.com)
Python
n=int(input())
flag=int(input())
ans=[]
for _ in range(n):name,score=input().split(' ')ans.append([name,int(score)])
ans.sort(key=lambda x:x[1],reverse= not flag)for e in ans:print(e[0],e[1],sep=' ')
C++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{int n,flag;cin>>n>>flag;vector<pair<string,int>> res(n);for(int i=0;i<n;i++){cin>>res[i].first>>res[i].second;}if(flag==0){stable_sort(res.begin(),res.end(),[](const pair<string,int> &front,const pair<string,int> &next){return front.second>next.second;});}else if(flag==1){stable_sort(res.begin(),res.end(),[](const pair<string,int> &front,const pair<string,int> &next){return front.second<next.second;});}for(int i=0;i<n;i++)cout<<res.at(i).first<<" "<<res.at(i).second<<endl;return 0;
}
C语言
#include<stdio.h>typedef struct
{char name[20];int grade;
}stu;int main()
{int n,flag;scanf("%d",&n);scanf("%d",&flag);stu st[n];stu temp;int i,j;for(i=0;i<n;i++){scanf("%s",&st[i].name);scanf("%d",&st[i].grade);}if(flag==0){for(i=n-1;i>0;i--){for(j=0;j<i;j++){if(st[j+1].grade>st[j].grade){temp=st[j];st[j]=st[j+1];st[j+1]=temp;}}}}if(flag==1){for(i=n-1;i>0;i--){for(j=0;j<i;j++){if(st[j+1].grade<st[j].grade){temp=st[j];st[j]=st[j+1];st[j+1]=temp;}}}}for(i=0;i<n;i++){printf("%s %d\n",st[i].name,st[i].grade);}
}