例题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);//输出不用取地址
}
}
}
全部评论
相关推荐
smile丶snow:尽量保证的一张a4纸吧。为什么工作经历只有公司?如果项目经历是工作里面的,应该写到工作经历里的吧。没有写项目职责,项目全是一个人写的吗?标题大小也好怪。两个项目的分割看不出来是,它和那些项目成功字体是一样大的 点赞 评论 收藏
分享
点赞 评论 收藏
分享