《算法笔记》4.1算法初步 排序 F 小白鼠排队

题目描述

N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。

输入

多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
注意:白鼠的重量各不相同。

输出

每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。

样例输入

1
79 omi
9
46 lcg
92 cru
37 ceq
54 vhr
17 wus
27 tnv
13 kyr
95 wld
34 qox

样例输出

omi
wld
cru
vhr
lcg
ceq
qox
tnv
wus
kyr

总结

定义一个结构体mouse来存储白鼠的重量与帽子颜色, 对白鼠的重量排序,输出对应的帽子颜色。

代码

#include<iostream>
#include<algorithm>
using namespace std;
struct mouse{
	int weight;
	char cap[100];
};

bool cmp(mouse a, mouse b)
{
	return a.weight > b.weight;
}

int main(int argc, char *argv[]) {
	mouse mouseArray[110];
	int n;
	while(cin>>n)
	{
		if(n < 1 || n > 100)
			break;
		for(int i = 0; i < n; i++)
		{
			cin>>mouseArray[i].weight;
			cin>>mouseArray[i].cap;
		}
		sort(mouseArray, mouseArray + n, cmp);
		for(int i = 0; i < n; i++)
			cout << mouseArray[i].cap << endl; 
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章