m0_53989813 2021-08-14 21:56 采纳率: 73.7%
浏览 30
已结题

装箱问题,显示部分正确,程序运行时错误,显示可能是数组越界访问,是哪里不对?

假设有N项物品,大小分别为s1、s2、…、si 、…、sN,其中si为满足1≤si ≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。
输入格式:
输入第一行给出物品个数N(≤1000);第二行给出N个正整数s i(1≤s i≤100,表示第i项物品的大小)。
输出格式:
按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。


#include<iostream>
using namespace std;
int main(){
    int N,a[100],b[100],m=0;
    cin>>N;
    for(int i=0;i<N;i++)
    {
        cin>>a[i];
        b[i]=0;
    } 
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            if((100-b[j])>=a[i])
            {
                cout<<a[i]<<" "<<j+1<<endl;
                if(j+1>m) 
                {
                    m=j+1;
                }
                b[j]=b[j]+a[i];
                break;
            }
        
        }
        
    }
    cout<<m;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-08-15 10:31
    关注

    题目要求:物品个数N(≤1000),所以代码里两个数组分别是:a[1000] , b[1000] 。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月14日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加