其他分享
首页 > 其他分享> > 【题解】Reach-Top 2909 台风

【题解】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;
}
/**************************************************************
    Reach-Top OJ
    RID:350347
    code length:398 B
    Problem: 2909
    User: 2018summerXC82
    Language: C++
    Result: 正确
    Time:0 ms
    Memory:1720 kb
****************************************************************/

标签:node,name,int,题解,Top,Reach,损失,money,cmp
来源: https://www.cnblogs.com/binjiazhisheng/p/11365509.html