杭电Online Judge1009题。C++结果输出不正确。求指正!
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009#include<iostream>#include<algorit...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct FS
{ double f;
double j;
};
int cmp1(FS a,FS b)
{
double aa,bb;
aa=(a.f+0.0)/(a.j+0.0);
bb=(b.f+0.0)/(b.j+0.0);
if(aa<bb)
return 1;
else
return 0;
}
int main()
{
int M,N;
while(cin>>M>>N)
{
if(M==-1&&N==-1)
break;
FS food[100];
double x,y;
int i;
for(i=0;i<N;i++)
{
cin>>x>>y;
food[i].j=x;
food[i].f=y;
}
sort(food,food+N,cmp1);
int money=M;
double amount=0.0;
for(int ii=0;ii<N;ii++)
{
if(money>food[ii].f)
{
money-=food[ii].f;
amount+=food[ii].j;
}
else
{
amount+=money*((food[ii].j+0.0)/(food[ii].f+0.0));
break;
}
}
cout<<setiosflags(ios::fixed)<<setprecision(3)<<amount<<endl;
}
system("PAUSE");
return 0;
} 展开
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct FS
{ double f;
double j;
};
int cmp1(FS a,FS b)
{
double aa,bb;
aa=(a.f+0.0)/(a.j+0.0);
bb=(b.f+0.0)/(b.j+0.0);
if(aa<bb)
return 1;
else
return 0;
}
int main()
{
int M,N;
while(cin>>M>>N)
{
if(M==-1&&N==-1)
break;
FS food[100];
double x,y;
int i;
for(i=0;i<N;i++)
{
cin>>x>>y;
food[i].j=x;
food[i].f=y;
}
sort(food,food+N,cmp1);
int money=M;
double amount=0.0;
for(int ii=0;ii<N;ii++)
{
if(money>food[ii].f)
{
money-=food[ii].f;
amount+=food[ii].j;
}
else
{
amount+=money*((food[ii].j+0.0)/(food[ii].f+0.0));
break;
}
}
cout<<setiosflags(ios::fixed)<<setprecision(3)<<amount<<endl;
}
system("PAUSE");
return 0;
} 展开
1个回答
展开全部
我运行了一下,执行结果没有问题,但是和要求的输出格式不一致,
要求全部输入完毕才输出,是不是这个问题?
要求全部输入完毕才输出,是不是这个问题?
追问
请问怎么才能通过。。。你帮忙试一下呗
追答
把每次的结果放到数组或者vector里,最后输出一下就行了
#include
#include
#include
#include //111
using namespace std;
vector result;//222
else
{
amount+=money*((food[ii].j+0.0)/(food[ii].f+0.0));
break;
}
}
result.push_back(amount); //333
}
for(vector::const_iterator iter=result.begin();iter!=result.end();++iter)//44
std::cout<<setiosflags(ios::fixed)<<setprecision(3)<<*iter<<endl;//55
system("PAUSE");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询