c语言我的程序编译错误是为什么?

#include<algorithm>#include<cstdio>#include<stdlib.h>#include<iostream>structnode{dou... #include<algorithm>
#include<cstdio>
#include<stdlib.h>
#include<iostream>
struct node
{
double p;
double va;
double ave;
}food[1000+20];
bool cmp(node a,node b)
{
return a.ave>b.ave;
}
using namespace std;
int main()
{
double v,n;double sum;
while(cin>>v>>n)
{ sum=0;
if(v==-1&&n==-1)
break;
for(int i=0;i<n;i++)
{
cin>>food[i].p>>food[i].va;
food[i].ave=food[i].p/food[i].va;
}
sort(food,food+n,cmp);
for(int j=0;j<n&&v!=0;j++)
{
if(v>=food[j].va)
{
sum+=food[j].p;
v-=food[j].va;
}
else
{
sum+=food[j].p/food[j].va*v;
v=0;
}
}
printf("%.3lf\n",sum);
}
return 0;
}
展开
 我来答
kaixingui2012
推荐于2016-02-07 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6559万
展开全部
int main()
{
    int n; //改为整型,编译通过,不知道你的代码想实现什么?
    double v, sum;
    while(cin>>v>>n)
    {
        sum=0;
        if(v==-1&&n==-1)
            break;
        for(int i=0;i<n;i++)
        {
            cin>>food[i].p>>food[i].va;
            food[i].ave=food[i].p/food[i].va;
        }
        sort(food,food+n,cmp);
        for(int j=0;j<n&&v!=0;j++)
        {
            if(v>=food[j].va)
            {
                sum+=food[j].p;
                v-=food[j].va;
            }
            else
            {
                sum+=food[j].p/food[j].va*v;
                v=0;
            }
        }
        printf("%.3lf\n",sum);
    }
    return 0;
}
匿名用户
2014-11-23
展开全部
这是cpp好吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式