《算法筆記》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;
}

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