1020 月饼 (25 分)

在这里插入图片描述

Notice:
1.c++中的结构体:
		struct Mooncake
	{
	    float num,price,unitp;  
	    int a;
	};
	Mooncake b,m1[10];
	vector<Mooncake> m2(10);
	末尾有分号结尾。
2.注意输入数据的类型.
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct Mooncake
{
    float num,price,unitp;  //库存量应为浮点数(测试点2测试了这一点)
};
bool cmp(Mooncake a,Mooncake b){
    return a.unitp > b.unitp;
}
int main(){
    int N,need;
    cin >> N >> need; //月饼种类
    Mooncake m[N];
    //把月饼按照单价从大到小排序
    for(int i = 0;i < N;i++){ 
        cin >> m[i].num;
    }
     for(int i = 0;i < N;i++){
        cin >> m[i].price;
        m[i].unitp =  m[i].price / m[i].num;
     }
    sort(m,m + N,cmp);
    
    //计算总价并输出
    float earn = 0.0;
    for(int i = 0;i < N;i++){
        if( need < m[i].num){ //总需求小于该类月饼库存
            earn += m[i].unitp * need;
            break;
        }else{                  //总需求大于等于该类月饼库存
            earn += m[i].price;
            need -= m[i].num;
        }
    }
    printf("%.2f",earn);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值