【题解】Reach-Top 2909 台风

题目描述

前几天,浙江省刚刚经历了台风袭击,相关部门要求统计一下各个地方的损失情况,并按损失程度从高到低进行排序。

输入

一个整数\(N\leq 10\)
下面\(N\)行,每行分别是地方的名称,以及本次台风的损失金额。

输出

按损失的金额大小,从高到低进行排序

样例输入

5
linhai 100
shaoxing 60
hangzhou 80
jiaxing 30
tiantai 70

样例输出

linhai 100
hangzhou 80
tiantai 70
shaoxing 60
jiaxing 30

思路&解答

经典排序水题。
首先,需要建立一个结构体struct node,里面包含每位难民的信息。
string name:每位难民的姓名。
int money:每位难民损失的金额。
具体实现:

struct node
{
    string name;
    int money;
};

在自定义排序函数cmp(node a,node b):

bool cmp(node a,node b)
{
    return a.money > b.money; //从损失程度高到损失程度低
}

最后调用sort()函数即可。

代码

#include <bits/stdc++.h>
using namespace std;
struct node
{
	string name;
	int money;
};
bool cmp(node a, node b)
{
	return a.money > b.money;
}
int main()
{
	node p[12];
	int n;
	cin >> n;
	for (int i = 1; i <= n; ++i)
		cin >> p[i].name >> p[i].money;
	sort(p + 1, p + n + 1, cmp);
	for (int i = 1; i <= n; ++i)
		cout << p[i].name << ' ' << p[i].money << endl;
	return 0;
}
posted @ 2019-08-16 17:54  兵家至圣  阅读(117)  评论(0编辑  收藏  举报