题目
成绩排序_牛客题霸_牛客网 (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);
}
}