打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【每周三道题】【题解】普及题:合影

每周三道题

『每周三道题』是计蒜客信息学推出的周更栏目。每周,在我们都会在公众号上都会发布由简到难,共三道信息学题目,并于次日公布题解。欢迎各位同学积极踊跃地参与解题哟!

题解

用结构体表示一个人,自定义排序,先比较性别,如果两个人性别不同,男生在前,两个人性别相同的时候,对于男生,身高低的在前,对于女生,身高高的在前。最后依次看排序后的结果,输出每个人的身高,四舍五入保留两位小数。

标程

#include <cstdio>#include <iostream>#include <algorithm>#include <string>using namespace std;struct people { int gender; // 性别 double h; // 身高};bool cmp(people a, people b) { if (a.gender != b.gender) { // 性别不同,男生在前 return a.gender < b.gender; } if (a.gender == 1) { // 都是男生,身高低的在前 return a.h < b.h; } else { // 都是女生,身高高的在前 return a.h > b.h; }} people p[45];string s;int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cin >> s >> p[i].h; if (s == 'male') { p[i].gender = 1; // 用整数表示性别,1 表示男生,2 表示女生,这样方便比较 } else { p[i].gender = 2; } } sort(p, p + n, cmp); // 排序 for (int i = 0; i < n; i++) { printf('%.2f ', p[i].h); // 四舍五入保留两位小数输出 } cout << endl; return 0;}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
根据身高重建队列
我是双性恋吗?
“性别”用英语怎么说?
为什么how-old.net 会走红?
联合国性别研究报告:90%的人对女性有歧视
双语:澳大利亚新护照承认“第三种性别”
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服