发布时间:2019-07-29 16:36:58
小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?最多100人。输入第一行是人数n,之后有n行每行是一位朋友的描述,包括性别和身高。输出是一行表示合影的身高排列,由空格隔开。(C++基础题)
输入第一行是人数n,之后有n行每行是一位朋友的描述,包括性别和身高;输出是一行表示合影的身高排列,由空格隔开。
若输入: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()
{
double a[100],b[100];
int n,k=0,f=0;
string s;
double t,m;
cin>>n;
for(int i=1;i<=n;i++)
{cin>>s>>m;
if(s=="male")
{
k++;
b[k]=m;
}
else
{
f++;
a[f]=m;
}
}
for(int i=1;i<=k;i++)
for(int j=i+1;j<=k;j++)
{
if(b[i]>b[j])
swap(b[i],b[j]);
}
for(int i=1;i<=f;i++)
{
for(int j=i+1;j<=f;j++)
{
if(a[i]<a[j])
swap(a[i],a[j]);
}
}
for(int i=1;i<=k;i++)
printf("%.2lf ",b[i]);
for(int i=1;i<=f;i++)
printf("%.2lf ",a[i]);
return 0;
}