【题解】Reach-Top OJ [2909] 台风
题目描述
前几天,浙江省刚刚经历了台风袭击,相关部门要求统计一下各个地方的损失情况,并按损失程度从高到低进行排序。
输入
一个整数。
下面行,每行分别是地方的名称,以及本次台风的损失金额。
输出
按损失的金额大小,从高到低进行排序
样例输入
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;
}
滴滴公司福利 1784人发布
查看7道真题和解析
