恼人的输出

情深的媛 2013-05-06 08:39:59

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

#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]<<" ";
}
}

...全文
197 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liupanmin123456789 2013-05-08
  • 打赏
  • 举报
回复
#include<iostream> using namespace std; void lowsort(float *ww,float*w,float *v,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]>ww[index]) { index=k; } if(index!=j) { temp=ww[index]; ww[index]=ww[j]; ww[j]=temp; temp=w[j]; w[j]=w[index]; w[index]=temp; temp=v[j]; v[j]=v[index]; v[index]=temp; } } } void BiLi(float *w,float *v,int n,float ww[]) { for(int i=0;i<n;i++) { ww[i]=v[i]/w[i];应是w[i]; } lowsort(ww,w,v,n); } float nap(float *w,float *v,float *x,int n,float C) { float sum=0.0; float *ww=new float [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+v[j]*x[j]; return sum; delete[]ww; } void main() { float C; cout<<"背包容量为"<<endl; cin>>C; int n; cout<<"物品个数为"<<endl; cin>>n; float *p=new float [n]; float *q=new float[n]; float *x=new float [n]; cout<<"物重"<<endl; for(int i=0;i<n;i++) { cin>>p[i]; } cout<<"物品价值"<<endl; for(int j=0;j<n;j++) { cin>>q[j]; } cout<<"输出最大总价值"<<endl; cout<< nap(p,q,x,n,C); cout<<"输出装入的物品"<<endl; for(int k=0;k<n;k++) { cout<<x[k]<<" ";//k; } delete[]p; delete[]q; delete[]x; }
hugett 2013-05-07
  • 打赏
  • 举报
回复

#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);//这里的排序应该不对吧。。你只是把ww排了序,而w,v并没有跟着一起排序。。这样w,v跟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[j];//i改为j
	}
	cout<<"输出最大总价值"<<endl;
	cout<< nap(p,q,x,n,C)<<endl;
	cout<<"输出装入的物品"<<endl;
	for(int k=0;k<n;k++)
	{
		cout<<x[k]<<" ";//i改为k
	}
	cout<<endl;
}
折翼断JJ 2013-05-06
  • 打赏
  • 举报
回复
#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[j];//改为j
}
cout<<"输出最大总价值"<<endl;
cout<< nap(p,q,x,n,C);
cout<<"输出装入的物品"<<endl;
for(int k=0;k<n;k++)
{
cout<<x[k]<<" ";//要改为K
}
}

输出不是地址了,就是不知道逻辑对不对。
ppsharp 2013-05-06
  • 打赏
  • 举报
回复
C++新手表示看不懂,来看答案的。
威力酷剪是专为运动摄影玩家量身打造的视频创作软件。内建简易上手的操作接口,即使是创作新手也能轻松打造惊艳作品,让冒险时刻攀上颠峰!当然本站发布的也有手机安卓版哦:威力酷剪 ActionDirector Video Editor 中文多语特别版。 震撼声视 创作精采刺激的专业级运动视频 4K视界展现更多细节 现今市面上运动摄影机大部分都已支持4K摄影,但后制剪辑设备,有同时支持汇入和输出4K影音的选择就不多。威力酷剪,是一套专为运动摄影设计的剪辑工具,完整支持4K素材汇入输出,让玩家尽可能保留画面细节,呈现更细腻的影像。 超流畅慢动作特效 相较于其他同级运动摄影剪辑产品,威力酷剪在高帧率(120/240fps)的视频剪辑掌握上更胜一筹。玩家不仅能汇入、编辑影格率至多240fps的影音素材,也能运用色彩/镜头校正技术至素材上,且无损输出后视频画质和帧率。 分享就是这么简单 编辑完成后,可直接上传分享至YouTube、Facebook、Vimeo或其他社群平台。 音乐撼动人心 利用简易上手工具,为创作加入绝妙音乐及音效,让视频更加有「声」有色。 极速剪辑 视频创作不再繁琐复杂! 全方位视频剪辑 威力酷剪集结一系列视频编辑工具,包含动态追踪、慢动作特效、缩放平移、视讯稳定、鱼眼校正、冻结画格、色彩调整等,轻松打造震撼视频。 运动视频速成 威力酷剪「创意主题」功能让你透过简单三步骤,轻松完成专属视频。创意作品快速生成、立即分享。 拖放式的脚本检视模式 「脚本模式」具有弹性且快速的操作接口。视频综览及编排直觉清晰,文字标题和转场等其他特效更可一目了然。 转换格式不再恼人 不局限于特定格式,威力酷剪可以支持各品牌运动摄影机的格式。省去转档的麻烦,随拍随剪,创作视频更有效率。 简易上手 一键修补瑕疵画面 & 套用创意主题模板 智能操作接口 透过智能操作接口,玩家可轻松自行设计视频。威力酷剪更内建「创意主题」模板,引领玩家逐步打造个人风格大作。 强悍工具化繁为简 威力酷剪将功能选项化繁为简,直观操作接口让你不再需要层层搜寻,视频创作更加省时。 一键修补瑕疵 搭载强大且易上手的后制功能,一键快速解决各种视频画面问题,点选下方视频进一步了解。 镜头校正 色彩校正&白平衡 视讯稳定 自动降噪&消除杂音 全新透过威力酷剪,轻松去除高ISO所产生的杂点,提升影像质量。加乘使用音效修复工具,移除恼人背景噪音嘶嘶声,让声视同样动人! 还原逼真色彩全新 智能分析片段,优化影像鲜艳度与饱和度,画面更贴近原色,保留最真实视频色彩感受! 360°全记录 完美呈现零死角惊奇与冒险镜头 一站式360º 视频编辑平台 完整支持360º视频剪辑项目,从汇入等距长方投影格式视频、裁剪素材,活用设计工具编辑、添加转场特效、文字标题,最后输出360º影像格式或上传分享至Facebook和YouTube。 用不同视角说故事全新 将360º视频转换为2D传统视频。如同多机摄影般,选择你的视角,创作你的故事;或使用超夯「小星球模式」,将所有美景一照纳入,弹性自定义视界中心,颠覆你对影像的想象。 让设计感走进视频全新 威力酷剪不仅结合极速编辑效能和简单易学操作接口,新一代更收录7款视频滤镜,让玩家自由套用,撼动人心,充满创意的作品就此产生。 文件格式支援列表 汇入 视频: ▪ MOD ▪ MVC (MTS) ▪ MOV (H.264) ▪ MPEG-1 ▪ MPEG-2 ▪ FLV (H.264) ▪ MPEG-4 AVC (H.264) ▪ MKV ▪ MP4 (XAVC S) ▪ 3GPP2 ▪ TOD ▪ AVCHD (M2T, MTS) ▪ VOB ▪ AVI ▪ VRO ▪ DAT ▪ WMV ▪ DivX* ▪ WMV-HD ▪ DV-AVI ▪ WTV in H.264/MPEG2 (多重视频及音讯串流) ▪ DVR-MS ▪ DSLR (内建LPCM/ AAC/ Dolby Digital audio音效之H.264视频) 360 视频: 法式等距长方投影MP4格式(H.264)以及2:1长宽比,最大支持至4K分辨率 * 若需使用DivX视频,请先在线下载DiVX编码(仅支持32位Windows操作系统) 相片: ▪ RAW ▪ GIF ▪ BMP ▪ JPG ▪ TIF ▪ PNG ▪ 动态GIF 360° 相片: 法式等距长方投影JPG格式以及2:1长宽比 音讯: ▪ WAV ▪ MP3 ▪ WMA ▪ M4A ▪ OGG ▪ FLAC ▪ AAC 输出 Video: ▪ MP4 (H.264 | 分辨率:FullHD (最高至240fps), 4K (最高至30fps) ▪ WMV (Windows Media | 4K 分

64,684

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧