本文共 1384 字,大约阅读时间需要 4 分钟。
1、
2、题目:
下沉的船
一艘船很不幸的撞上了暗礁,船长组织大家上救生艇,而且船长决定女人(woman)和小孩(child)先上船,然后其次是男人(man),最后是船长(captain)。给出原来的顺序,通过编程得到按船长要求排列后的顺序。
身份优先级: woman = child > man > captain.
注意:如果两者的身份优先级一样,请按原来的序列的顺序决定,原序列中在前面的人,依然在前面(具体请看样例)
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/