恼人的输出

程序媛媛啊 程序媛媛啊 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

这是用贪心法求背包问题,麻烦运行一下,会输出的全是地址符,不是数组元素,为什么啊

#include<iostream>
using namespace std;


void lowsort(int *ww,int n)
{
int index;
int temp;
for(int j=0;j<n;j++)
{
index=j;
for(int k=j+1;k<n;k++)

if(ww[k]>index)
{
index=k;
}

if(index!=j)
{
temp=ww[index];
ww[index]=ww[j];
ww[j]=temp;
}
}

}



void BiLi(int *w,int *v,int n,int ww[])
{
for(int i=0;i<n;i++)
{
ww[i]=v[i]/ww[i];
}
lowsort(ww,n);
}
int nap(int *w,int *v,int *x,int n,int C)
{
int sum=0;
int *ww=new int [n];
for(int i=0;i<n;i++)
x[i]=0;
BiLi(w,v,n,ww);
int j=0;
while(w[j]<C)
{
C=C-w[j];
x[j]=1;
sum=sum+v[j];
j++;
}

x[j]=C/w[j];
sum=sum+ww[j]*v[j];
return sum;
}

void main()
{
int C;
cout<<"背包容量为"<<endl;

cin>>C;
int n;
cout<<"物品个数为"<<endl;
cin>>n;
int *p=new int [n];
int *q=new int[n];
int *x=new int [n];
cout<<"物重"<<endl;
for(int i=0;i<n;i++)
{
cin>>p[i];

}
cout<<"物品价值"<<endl;
for(int j=0;j<n;j++)
{
cin>>q[i];
}
cout<<"输出最大总价值"<<endl;
cout<< nap(p,q,x,n,C);
cout<<"输出装入的物品"<<endl;
for(int k=0;k<n;k++)
{
cout<<x[i]<<" ";
}
}

...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
程序媛媛啊
C++ 语言 65,214 成员 250,514 内容