与利润有关的背包问题

与利润有关的背包问题

ID:11684842

大小:134.00 KB

页数:7页

时间:2018-07-13

与利润有关的背包问题_第1页
与利润有关的背包问题_第2页
与利润有关的背包问题_第3页
与利润有关的背包问题_第4页
与利润有关的背包问题_第5页
资源描述:

《与利润有关的背包问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、大学学院计算机程序训练任务书学生姓名:班级:学号:设计题目:《与利润有关的背包问题》一,题目:《与利润有关的背包问题》二,问题描述:输入N种货物重量wkg及获利p,输出各种货物及重量到文件。题目解释:一个商人带着一个能装mkg的背包去乡下收购货物,准备将这些货物卖到城里获利。现有n种货源,且知第i种货物有wikg,可获利pi元。请编写算法帮助商人收购货物,以获取最高的利润。三,系统设计说明:1.系统用到的数据类型程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样

2、的重要性,在与利润有关的背包问题中,由于需要各种数据,所以需要定义各种数据的类型。主要包括如下:#include"stdio.h"#defineN30typedefstruct{intbh;floatm;floath;floatl;2、main()主函数程序采用函数调用的设计理念,主函数程序的入口,各调用函数均由主函数控制调用。控制功能的实现通过循环执行一个开关语句,该语句的条件值是通过调用主菜单得到的返回值(head),根据该值,调用相应的各功能函数。3.printf()输出函数直接利用输出函数print

3、f输出字符串,在屏幕上显示一个菜单。四,功能本程序功能是输入N种货物重量wkg及获利p,输出各种货物及重量到文件,通过C语言程序最终帮助商人获取最大利润1.N-S图:定义宏替换#defineN30定义一个结构体变量B,组成成员分别有bh,m,h,l,输入信息数组m的值for(i=0;i

4、b[i].m输入背包的质量Xfor(i=o;i<=m-1;i++);for(j=i+1;j

5、;b[j].l>b[i].lYNcent=b[i]b[i]=b[j]b[j]=centfor(n=0;;n++);(x-=b[n].m)<0YNBreakfor(i=0;i

6、说明结构体可以用字母B代替,结构体中定义所需的变量类型。3.主函数中结构体Bb[N]定义各变量。4.以整型数据输入物品的种类,并在屏幕上自动显示出来,用一个for循环来控制程序中物品的种类数。5.输入每种货物的质量和所获利润,并计算他们的比,即h

7、m6.输入背包的最大载重,并利用for循环使货物的最大质量不能超过背包的最大载重。7.if(b[j].l>b[i].l){cent=b[i];b[i]=b[j];b[j]=cent;使b[i]和b[j]的值互换以达到l降序排列的目的。8.if((x-=b[n].m

8、)<0)break;使选择货物的质量不能超过背包的质量。9.最后利用语句y+=b[i].h;使利润进行累加,最终输出最大利润。六,源程序#include"stdio.h"#defineN30typedefstruct{intbh;intm;inth;floatl;}B;main(){Bb[N],cent;inti,a,j,n;intx,y=0;printf("要输入货物的种类数:");scanf("%d",&a);for(i=0;i

9、物的质量m:",b[i].bh);scanf("%d",&b[i].m);printf("请输入第%d种货物获利h:",b[i].bh);scanf("%d",&b[i].h);b[i].l=b[i].h/b[i].m;}printf("输入背包最大载重x:");scanf("%d",&x);for(i=0;ib[i].l){cent=b[i];b[i]=b[j];b[j]=cent;}for(n=0;;n++)if((x-=b[n]

10、.m)<0)break;printf("收购第:");for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。