博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
下沉的船 (注意sort并非按照下标排序,需要自己加入二次判断)
阅读量:4036 次
发布时间:2019-05-24

本文共 1384 字,大约阅读时间需要 4 分钟。

1、

2、题目:

下沉的船

Time Limit: 1000MS    Memory limit: 65536K

题目描述

一艘船很不幸的撞上了暗礁,船长组织大家上救生艇,而且船长决定女人(woman)和小孩(child)先上船,然后其次是男人(man,最后是船长(captain)。给出原来的顺序,通过编程得到按船长要求排列后的顺序。

身份优先级: woman = child > man > captain.

注意:如果两者的身份优先级一样,请按原来的序列的顺序决定,原序列中在前面的人,依然在前面(具体请看样例)


输入

多组数据(少于
10
组),每一组有一个整数
n
0<n<100)
,代表船上有
n
个人,接下来
n
行,每行有一个名字和他的身份。名字字符长度小于
10
。数据保证不存在重名,注意可能存在多名船长

输出

输出n行,每一行输出一个名字,先上船的名字在前面。

示例输入

6Jack captainAlice womanCharlie manTeddy womanBob childJulia woman

示例输出

AliceTeddyBobJuliaCharlieJack

 

3、AC代码:

#include
#include
#include
#include
using namespace std;struct node{ char name[15]; char job[15]; int rank; int idx;}a[105];//判断下标的大小,sort不是自动判断int cmp(node a,node b){ if(a.rank==b.rank) return a.idx
>a[i].name>>a[i].job; a[i].idx=i; if(strcmp(a[i].job,"woman")==0) a[i].rank=1; else if(strcmp(a[i].job,"child")==0) a[i].rank=1; else if(strcmp(a[i].job,"man")==0) a[i].rank=2; else if(strcmp(a[i].job,"captain")==0) a[i].rank=3; }// for(int i=0;i

 

也可以直接打印,AC

#include
#include
#include
using namespace std;struct node{ char name[15]; char rank[15];}a[105];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i

 

转载地址:http://deddi.baihongyu.com/

你可能感兴趣的文章
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
js弹窗插件
查看>>
自定义 select 下拉框 多选插件
查看>>
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>
linux和windows内存布局验证
查看>>
linux config
查看>>
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux dump_backtrace
查看>>
linux irqdebug
查看>>
git 常用命令
查看>>
linux位操作API
查看>>
uboot.lds文件分析
查看>>