合影效果(信息学奥赛一本通-T1182)
生活随笔
收集整理的這篇文章主要介紹了
合影效果(信息学奥赛一本通-T1182)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
小云和朋友們去爬香山,為美麗的景色所陶醉,想合影留念。如果他們站成一排,男生全部在左(從拍照者的角度),并按照從矮到高的順序從左到右排,女生全部在右,并按照從高到矮的順序從左到右排,請問他們合影的效果是什么樣的(所有人的身高都不同)?
【輸入】
第一行是人數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<iostream> #include<cstdio> #include<cstring> using namespace std; int main() {int n;double d;char s[20];double a[50],b[50];int p=0,q=0;double temp;int i,j;cin>>n;for(i=0;i<n;i++){cin>>s>>d;if(strcmp(s,"male")==0)a[p++]=d;else b[q++]=d;}for(i=0;i<p;i++)for(j=i+1;j<p;j++)if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}for(i=0;i<q;i++)for(j=i+1;j<q;j++)if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}for(i=0;i<p;i++)printf("%.2lf ",a[i]);for(i=0;i<q;i++)printf("%.2lf ",b[i]);return 0; }?
總結
以上是生活随笔為你收集整理的合影效果(信息学奥赛一本通-T1182)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字金字塔(信息学奥赛一本通-T1258
- 下一篇: windy数(BZOJ-1026)