例题7.2FatMouse'Trade
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct goods
{
int weight;
int totalprice;
double price;
};
bool cmp(goods a,goods b)
{
return a.price<b.price;
}
int main()
{
int money;
int type;
while(cin>>money>>type)
{
if(money==-1&&type==-1)
{
break;
}
else{
goods gg[type];
for(int i=0;i<type;i++)
{
cin>>gg[i].weight>>gg[i].totalprice;
gg[i].price=gg[i].totalprice*1.0/gg[i].weight;//必须加*1.0,否则就是去尾整除无小数
// cout<<gg[i].weight<<" "<<gg[i].totalprice<<" "<<gg[i].price<<endl;//
}
sort(gg,gg+type,cmp);
double answer=0;
for(int i=0;i<type;i++)
{
// cout<<"剩下的钱"<<money<<"已买的重量"<<answer<<endl;
if(money>gg[i].totalprice)
{
money-=gg[i].totalprice;
answer+=gg[i].weight;
}
else{
answer+=money*1.0/gg[i].price;
money=0;
}
}
printf("%.3f\n",answer);//输出不用取地址
}
}
}
#include <algorithm>
#include <cstdio>
using namespace std;
struct goods
{
int weight;
int totalprice;
double price;
};
bool cmp(goods a,goods b)
{
return a.price<b.price;
}
int main()
{
int money;
int type;
while(cin>>money>>type)
{
if(money==-1&&type==-1)
{
break;
}
else{
goods gg[type];
for(int i=0;i<type;i++)
{
cin>>gg[i].weight>>gg[i].totalprice;
gg[i].price=gg[i].totalprice*1.0/gg[i].weight;//必须加*1.0,否则就是去尾整除无小数
// cout<<gg[i].weight<<" "<<gg[i].totalprice<<" "<<gg[i].price<<endl;//
}
sort(gg,gg+type,cmp);
double answer=0;
for(int i=0;i<type;i++)
{
// cout<<"剩下的钱"<<money<<"已买的重量"<<answer<<endl;
if(money>gg[i].totalprice)
{
money-=gg[i].totalprice;
answer+=gg[i].weight;
}
else{
answer+=money*1.0/gg[i].price;
money=0;
}
}
printf("%.3f\n",answer);//输出不用取地址
}
}
}
全部评论
相关推荐
07-02 18:09
门头沟学院 Java 点赞 评论 收藏
分享
06-06 16:41
武汉理工大学 嵌入式工程师 
点赞 评论 收藏
分享
05-15 19:57
西安建筑科技大学 Java 
点赞 评论 收藏
分享