文章

8

粉丝

0

获赞

15

访问

1.1k

头像
喝饮料 题解:(double)drinks[i].mi/ drinks[i].wi;注意转换成double
P1478 云南大学机试题
发布于2025年3月18日 13:21
阅读数 148

#include <iostream>
#include <algorithm>
#include <iomanip>

using namespace std;

struct Drink {
    int mi; // 饮料的毫升数
    int wi; // 饮料的价格
};

// 比较函数,按性价比从高到低排序
bool compare(const Drink &a, const Drink &b) {
    double ratioA = (double)a.mi / a.wi;
    double ratioB = (double)b.mi / b.wi;
    return ratioA > ratioB;
}

int main() {
    int x, n;
    while (cin >> x >> n) {
        if (x == -1 && n == -1) break; // 输入结束条件

        Drink drinks[10009]; // 存储饮料信息
        for (int i = 0; i < n; i++) {
            cin >> drinks[i].mi >> drinks[i].wi;
        }

        // 按性价比排序
        sort(drinks, drinks + n, compare);

        float totalMi = 0.0; // 总毫...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发