C++ 结构体排序

在这里插入图片描述

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

using namespace std;

typedef struct city
{
    string name;
    double first;
    double second;
    double third;
    double all;
    double part;
}city;

bool comparsion(city a, city b){
    return a.all > b.all;
}

int main()
{
    int n;
    cin >> n;
    vector<city> array(n);
    for(int i = 0; i < n; i++){
        cin >> array[i].name >> array[i].first >> array[i].second >> array[i].third;
        array[i].all = array[i].first + array[i].second + array[i].third;
        array[i].part = array[i].third / array[i].all;
    }

    sort(array.begin(), array.end(), comparsion);

    string name_third;
    for(int i = 0; i < 3; i++){
        int max_third = 0;
        if (array[i].part > max_third){
            max_third = array[i].part;
            name_third = array[i].name;
        }
        cout << array[i].name << " " << array[i].first << " " << array[i].second << " " << array[i].third << " " << array[i].all  << endl;
    }
    cout << array[0].name << " " << name_third;
    return 0;
}


版权声明:本文为weixin_41738030原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。