合影效果java_排序入门练习题9 合影效果 题解
题目出处:《信息学奥赛一本通》第二章上机练习7
题目描述
汪老师和朋友们去爬山,为美丽的景色所陶醉,想合影留恋。如果他们站成一排,男生全部在左(从拍摄者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?
输入格式
第一行是人数 \(n(2 \le n \le 100)\) ,且至少有一个男生和一个女生。
后面紧跟 \(n\) 行,每行输入一个人的性别(男 male 或 女 female ,说明:"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.7 1.61 1.56
题目分析
这道题目使用结构体排序做。其思想和“整数奇偶排序”类似。
首先我们要开一个结构体 Node ,他的 ch 用于标识性别, h 用于标识身高;并在定义的同时初始化结构体数组 a :
struct Node {
char ch[8]; // 性别
double h; // 身高
} a[101];
比较函数按照“男在前,女在后;男生从矮到高排,女生从高到矮排”的规则来编写:
bool cmp(Node a, Node b) {
if (strcmp(a.ch, b.ch) != 0) // 如果性别不同
return strcmp(a.ch, "male") == 0; // 男生排前面
else if (strcmp(a.ch, "male") == 0) // 如果都是男生
return a.h < b.h; // 矮的排前面
else // 否则(都是女生)
return a.h > b.h; // 高的排前面
}
实现代码如下:
#include
using namespace std;
struct Node {
char ch[8]; // 性别
double h; // 身高
} a[101];
int n;
bool cmp(Node a, Node b) {
if (strcmp(a.ch, b.ch) != 0) // 如果性别不同
return strcmp(a.ch, "male") == 0; // 男生排前面
else if (strcmp(a.ch, "male") == 0) // 如果都是男生
return a.h < b.h; // 矮的排前面
else // 否则(都是女生)
return a.h > b.h; // 高的排前面
}
int main() {
cin >> n;
for (int i = 0; i < n; i ++) cin >> a[i].ch >> a[i].h;
sort(a, a+n, cmp);
for (int i = 0; i < n; i ++) {
if (i) putchar(' ');
printf("%.2f", a[i].h);
}
cout << endl;
return 0;
}
合影效果java_排序入门练习题9 合影效果 题解相关推荐
- 谁考了第k名c语言源代码,排序入门练习题3 谁考了第k名 题解
题目出处:<信息学奥赛一本通>第二章 上机练习1 题目描述 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名的学生的学号和成绩. 输入格式 输入的第一行包含两 ...
- 合影效果java_【蚂蚁课堂】四十三:如何拍酷炫集体照?
原标题:[蚂蚁课堂]四十三:如何拍酷炫集体照? 作者 | 蚂蚁MaE 编辑 | 萌仔 大家出去玩或者聚会的时候会经常拍合影,但多数人拍出的效果真心不敢恭维. 蚂蚁随手翻了一下同学的QQ空间,发现了这种 ...
- 信息学奥赛一本通 1182:合影效果 | OpenJudge NOI 1.10 07:合影效果
[题目链接] ybt 1182:合影效果 OpenJudge NOI 1.10 07:合影效果 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将男生身高和女生身高分别排序 将男 ...
- mysql怎么分组计算逾期率_转行数据分析第三篇:mysql查询入门练习题
这篇练习题是我在学sql入门的时候做的,应该算是在网上能找到的习题里最基础的一篇,非常适合新手练习,如果你接触sql不超过半个月,建议可以看一下<sql必知必会>或<mysql必知必 ...
- MySQL代做题_转行数据分析第三篇:mysql查询入门练习题
这篇练习题是我在学sql入门的时候做的,应该算是在网上能找到的习题里最基础的一篇,非常适合新手练习,如果你接触sql不超过半个月,建议可以看一下<sql必知必会>或<mysql必知必 ...
- html5实现ios长按图标后进入图标排序及删除功能的效果
2019独角兽企业重金招聘Python工程师标准>>> html5实现ios长按图标后进入图标排序及删除功能的效果 我们知道在ios(国产定制安卓系统基本都有)设备上按下图标,图标就 ...
- (私人收藏)python学习(游戏、爬虫、排序、练习题、错误总结)
python学习(游戏.爬虫.排序.练习题.错误总结) https://pan.baidu.com/s/1dPzSoZdULHElKvb57kuKSg l7bz python100经典练习题 pyth ...
- 蓝桥杯入门练习题斐波那契数列
蓝桥杯入门练习题 斐波那契数列 #include <stdio.h> #include <stdlib.h>int main() {long long i, j, f1 = 1 ...
- UnityShader入门精要-透明效果
实现透明效果的方法:1.透明度测试2.透明度混合 深度缓冲Z-buffer决定了哪个物体的那些部分会被渲染在前面,而哪些部分会被遮挡(比较距照相机的距离),渲染一个片元时需要把他的深度值与已经存在在深 ...
最新文章
- AMP328音频放大器
- Spring框架学习day_03:对于读取文件方式的补充/关于spring框架知识点的学习方式
- 辅助类——记录错误信息
- idea提交spark任务,内存不足,指定JVM内存的解决方法
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
- 充电电流用软件测试准吗,实验:1A与2.1A对手机充电电流一样的,小伙伴再也不用担心咯...
- php正则表达式匹配逗号,数字和逗号PHP正则表达式只
- 汇编语言的简答入门--斐波那契数列(递归)
- 【elasticsearch】 flink es sink Connection refused
- node mysql 模块 封装_node.js基于工厂方法的mysql模块封装
- Ros学习笔记(四)创建Ros消息
- html设置css字体样式表,HTML 学习笔记 CSS样式(字体)
- 海康设备添加到萤石云
- 朋友圈的人脉关系的算法
- ios崩溃日志分析,无dSYM文件
- Mate30安装谷歌全家桶(20200215,成功)
- mysql中的mysql数据库不见了
- mybatis批量新增和修改
- 程序员段子:电脑在手,代码我有!
- ps之一寸照片的制作详解(1)
热门文章
- windows按照title开启和关闭进程
- 鸿蒙玺绶能升级么,属性激增 《诛仙2》强力装备大集合(三)
- 三星正在完成android更新,三星发布Android 10更新计划表!又三款机型被选中,有你的吗?...
- 方法: 跳转App Store更新你应用的URL究竟该怎么写
- 多节点单进程Nodelet
- 企业发布重要通知短信收不到该怎么办
- 2016淘宝首页改版 细说淘宝首页设计变化史
- mysql日期相减返回秒_mysql两个日期相减得到秒、分、天
- 有关图像生成的函数 .
- 腾达a9服务器无响应,腾达(Tenda)A9设置网站打不开怎么办?