2 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct student{ string name; int score; } a[110]; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i].name; cin>>a[i].score; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(a[j].score<a[j+1].score){ swap(a[j],a[j+1]); } if(a[j].score==a[j+1].score){ if(a[j].name[0]>a[j+1].name[0]){ swap(a[j],a[j+1]); } } } } for(int i=0;i<n;i++){ cout<<a[i].name<<" "; cout<<a[i].score<<endl; } return 0; }c++做法
-
0
参考如下,用了冒泡排序。(python)
(不是最简单的)→←
其他方法欢迎讨论!^_^
n = int(input()) score = [] for _ in range(n): score.append(input().split()) for i in range(len(score)): while i > 0: a,b = score[i],score[i-1] if a[1] > b[1] or (a[1] == b[1] and a[0][0] < b[0][0]): score[i],score[i-1] = b,a else: break i -= 1 for [m,s] in score: print(m,s)
- 1
信息
- ID
- 467
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 17
- 已通过
- 5
- 上传者