假设有N项物品,大小分别为s​1​​、s​2​​、…、s​i​​、…、s​N​​,其中s​i​​为满足1的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。

输入格式:

输入第一行给出物品个数N(≤);第二行给出N个正整数s​i​​(1,表示第i项物品的大小)。

输出格式:

按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。

输入样例:

8
60 70 80 90 30 40 10 20

输出样例:

60 1
70 2
80 3
90 4
30 1
40 5
10 1
20 2
5
#include<stdio.h>
struct box{     int data;//定义一个结构体包含 大小(data), int num; //装箱的位数 int f;      //判断是否装箱f=0时未装箱,反之f=1
}B[1001];
int main(){int n,i,num=1,sum=0,m;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&B[i].data);B[i].f=0;  //最初都为0 }m=n;while(m){  //当m为零的时候,所有物品装箱完毕,跳出循序 for(i=0;i<n;i++){  //一个一个的遍历 if(B[i].f==0){  //只考虑未装箱的 sum+=B[i].data;if(sum<=100){    //如果未超过箱子的容量 B[i].f=1; //装箱成功f赋值为 1B[i].num=num; //记录 装入第几个箱子 m--;  //装箱成功一个物品就减去一个 }else  //超过了就不加本物品,继续往下遍历 sum-=B[i].data;}    }   sum=0; //偏历完一次后,箱子加1,同样容量归0 num++;}for(i=0;i<n;i++)printf("%d %d\n",B[i].data,B[i].num);printf("%d\n",num-1);return 0;
} 

装箱问题(20 分)相关推荐

  1. 实验7-1-13 装箱问题 (20分)

    实验7-1-13 装箱问题 (20分) 假设有N项物品,大小分别为s ​1 ​​ .s ​2 ​​ .-.s ​i ​​ .-.s ​N ​​ ,其中s ​i ​​ 为满足1≤s ​i ​​ ≤100 ...

  2. 7-1 装箱问题 (50分)

    7-1 装箱问题 (50分) 假设有N项物品,大小分别为s​1​​ .s2​​ .-.s​i​​ .-.sN,其中si为满足1≤si​​ ≤100的整数.要把这些物品装入到容量为100的一批箱子(序号 ...

  3. 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)

    7-1 查找书籍(20 分) 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价. 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息.每本书 ...

  4. PTA—输出全排列 (20分) 递归回溯思想

    PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...

  5. 2、求100以内的素数之和。(20分)

    题目: /* 2.求100以内的素数之和.(20分) */ 代码: public class Two207 {public static void main(String[] args) {int s ...

  6. 1、输入四个整数,按照从小到大顺序输出。(20分)

    题目: /* 1.输入四个整数,按照从小到大顺序输出.(20分) */ 代码: 注:题目说的是四个数的排序,我就直接写了个冒泡排序 public class One207 {public static ...

  7. /* * 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“

    题目: 编程题第五题(20分): 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 *****************    所谓" ...

  8. /* * 编程题第四题(20分): 用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。 */

    题目: /* 编程题第四题(20分): 用1元5角钱人名币兑换5分.2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案. */ 我使用java做的 public class ...

  9. /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */

    题目: /* 编程第三题(20分) 打印所有的水仙花数.所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身.(例153=111+333+555) */ 我是用java做的 public cla ...

  10. /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */

    题目: /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第十次落地时,共经过多少米?第十次反弹多高? */ 我是用java做的 public ...

最新文章

  1. 计算当前时间对应的本周一、上周一
  2. Selenium+java - 借助autolt完成上传文件操作
  3. Git之hotfix热修复分支
  4. 谷歌大脑科学家亲解 LSTM:一个关于“遗忘”与“记忆”的故事 本文作者:奕欣 2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入门介绍了,看不懂的话欢迎关注「AI 科技
  5. mysql自动备份脚本linux_一个Mysql自动备份脚本,定时备份MYSQ脚本,linux下Mysql自动备份脚本...
  6. .size .shape .size() type的运用
  7. Android蓝牙通信功能开发
  8. 微信重大更新,mac版可刷朋友圈!
  9. 字更大、页面更简单 淘宝长辈模式正式上线
  10. VC++6.0 内存泄露(Memory Leaks)征兆1
  11. SVM支持向量机:分类、回归和核函数
  12. C++并发编程之std::future
  13. 20201007:力扣209周周赛题解记录(上)
  14. AI学习笔记(十五)自然语言处理基本概念
  15. 苹果发信用卡——大数据解读硅谷巨头如何发力金融科技
  16. CUGBACM130715 组队赛 BNU Curvy Little Bottles - from lanshui_Yang
  17. M0n0Wall防火墙安装配置
  18. [原创]软件性能测试培训
  19. mysql 64 免安装_MYSQL 免安装版(windows 7/64)
  20. 微信小程序 第三方平台授权小程序业务

热门文章

  1. [zotero] PDF translate 有道智云API接入
  2. c语言编程季节输出春夏秋冬,根据输入1~12之间的数字,判断是春夏秋冬那个季节,要求使用方法定义四个季节.输出的结果图是:请输入月份:6该季节为夏季...
  3. 服务器断电数据库文件好几个,一个服务器放多个数据库好么
  4. 上市公司的工程师,水平怎么样?看看这个案例
  5. 1.JavaScript中定义数组的两种主要方式
  6. python学什么教学_python零基础教学之列表教学
  7. Mail merge region 'tablePrint' is badly formed. TableStart and TableEnd should be in the same sectio
  8. 过年了,用 PyQt5 生成一副春联吧...
  9. springboot 整合 redis布隆过滤器
  10. c#endread怎么打印出来_C# 小票打印机 ESC命令行方式打印