#include <bits/stdc++.h>
using namespace std;int main()
{int n; // 人数cin >> n;string arr[n]; // 存储性别的数组double brr[n]; // 存储身高的数组// 读取每个人的性别和身高for (int i = 0; i < n; i++){cin>>arr[i]>>brr[i];}// 对男性根据身高从高到低进行冒泡排序for (int i = 0; i < n; i++){if(arr[i]=="male"){for (int j = 0; j < n; j++){if(arr[j]=="male") {if(brr[i]<brr[j]){// 交换身高和性别swap(arr[i],arr[j]);swap(brr[i],brr[j]);}}}}}// 对女性根据身高从低到高进行冒泡排序for (int i = 0; i < n; i++){if(arr[i]=="female"){for (int j = 0; j < n; j++){if(arr[j]=="female") {if(brr[i]>brr[j]){// 交换身高和性别swap(arr[i],arr[j]);swap(brr[i],brr[j]);}}}} }// 输出所有男性的身高(从高到低)for (int i = 0; i < n; i++){if(arr[i]=="male") {cout<< fixed << setprecision(2)<<brr[i]<<" ";}}// 输出所有女性的身高(从低到高)for (int i = 0; i < n; i++){if(arr[i]=="female") {cout<< fixed << setprecision(2)<<brr[i]<<" ";}}
}
代码逻辑如下:
- 输入人数 n。
- 创建两个数组 arr 和 brr,用于存储每个人的性别和身高。
- 通过循环读取每个人的性别和身高,存储到对应的数组中。
- 使用冒泡排序对男性按照身高从高到低进行排序,交换身高和性别。
- 使用冒泡排序对女性按照身高从低到高进行排序,交换身高和性别。
- 输出排序后的男性身高,保留两位小数。
- 输出排序后的女性身高,保留两位小数。