2 条题解
-
0
插入排序方法:
#include <bits/stdc++.h> using namespace std; // 定义一个结构体来存储每个人的信息 struct Person { string gender; float height; }; // 自定义插入排序函数:男生身高从矮到高 void insertionSortMale(vector<Person>& males) { for (int i = 1; i < males.size(); i++) { Person key = males[i]; int j = i - 1; while (j >= 0 && males[j].height > key.height) { males[j + 1] = males[j]; j--; } males[j + 1] = key; } } // 自定义插入排序函数:女生身高从高到矮 void insertionSortFemale(vector<Person>& females) { for (int i = 1; i < females.size(); i++) { Person key = females[i]; int j = i - 1; while (j >= 0 && females[j].height < key.height) { females[j + 1] = females[j]; j--; } females[j + 1] = key; } } int main() { int n; cin >> n; vector<Person> males, females; // 输入每个人的性别和身高,并分类存储 for (int i = 0; i < n; i++) { string gender; float height; cin >> gender >> height; if (gender == "male") { males.push_back({gender, height}); } else { females.push_back({gender, height}); } } // 对男生按身高从矮到高排序 insertionSortMale(males); // 对女生按身高从高到矮排序 insertionSortFemale(females); // 输出排好队的结果,男生在前,女生在后 for (int i = 0; i < males.size(); i++) { printf("%.2f ", males[i].height); } for (int i = 0; i < females.size(); i++) { printf("%.2f ", females[i].height); } return 0; } -
0
原题解:
#include <bits/stdc++.h> using namespace std; struct Student { string name; double score; }; bool cmp(Student a, Student b) { return a.score < b.score; } int main() { int n; cin >> n; Student a[n]; for (int i = 0; i < n; i++) cin >> a[i].name >> a[i].score; sort(a, a + n, cmp); for (int i = 0; i < n; i++) if (a[i].name == "male") printf("%.2lf ", a[i].score); for (int i = n - 1; i >= 0; i--) if (a[i].name == "female") printf("%.2lf ", a[i].score); return 0; }
- 1
信息
- ID
- 662
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 7
- 已通过
- 5
- 上传者