测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A50513. 合影效果

填空题 困难

题目描述

合影效果

题目描述

小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?

输入

第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。

后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数,单位米),两个数据之间以空格分隔。

输出

n个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后2位,相邻两个数之间用单个空格隔开。

输入样例

6

male 1.72

male 1.78

female 1.61

male 1.65

female 1.70

female 1.56

输出样例

1.65 1.72 1.78 1.70 1.61 1.56

参考答案

#include<bits/stdc++.h> using namespace std; int main(){ float m[45];//男生身高数组 float w[45];女生身高数组 int n/*题意可知*/,mp = 0/*男生身高数组下标*/,wp = 0/*女生身高数组下标*/; cin>>n; for(int i = 0;i<n;i++){ char k[8]; float l; cin>>k>>l; if(k[0] == 'm'){//如果首字母是m就是男生 m[mp] = l;//丢到男生数组 mp++;//下标向下移动 }else{//反之,就是女生 w[wp] = l;//不用废话了吧 wp++;//女生下标++ } } sort(m,m+mp);//多么方便的sort(),不是吗? sort(w,w+wp); for(int i = 0;i<mp;i++){ printf("%.2f ",m[i]);//这里千万不能使用cout输出,下面会说 } for(int i = wp-1;i>=0;i--){ printf("%.2f ",w[i]); } }
上一题 下一题