package 实验文件;
import java.util.ArrayList;
import java.util.Scanner;
public class BoxMain {
public static void swap(int a, int b){
int m;
m=a;a=b;b=m;
}
public static void sort(int[] a, int n)
{
int temp;
for(int i=0;i<n-1;i++) //比较n-1次(第一次循环表示趟数)
{
for(int j=0;j<n-i-1;j++) // 最后一次比较a[n-i-1]与a[n-i-2] (第二次循环表示比较次数 )
{
if(a[j]<a[j+1])
{
swap( a[j+1],a[j]);
}
}
}
}
public static void main(String[]args){
Scanner sa=new Scanner(System.in);
int Boxvolume;
System.out.println("输入箱子大小");
Boxvolume= sa.nextInt(); //输入箱子大小
int goods;
System.out.println("输入货物多少");
goods= sa.nextInt(); //输入货物多少
int []goodvolume=new int[1000];
int []resivolume=new int[1000];
System.out.println("输入每一个货物大小,一共需要"+goods+"个");
for (int i=0;i<goods;i++){
goodvolume[i]= sa.nextInt(); //输入每一个货物大小
}
sort(goodvolume,goods);
int resivolumle[][]=new int[1000][1000]; //定义每个箱子承装的货物代码
int box_count=0; //定义箱子个数
resivolume[box_count]=Boxvolume; //定义第一个箱体的剩余体积
for(int i=0;i<goods;i++){
int shouru=1;
for (int j=0;j<=box_count;j++){
if (goodvolume[i]<=resivolume[j]){
resivolume[j]=resivolume[j]-goodvolume[i];
shouru=0;
int num=0;
ArrayList mak=new ArrayList();
for (int m=0;m<resivolumle[i].length;m++){
if (resivolumle[i][m]!=0){
num++;
}
}
resivolumle[i][num]=i+1;
break;
}
}
if (shouru==1){
box_count+=1;
resivolume[box_count]=Boxvolume-goodvolume[i];
resivolumle[box_count][0]=i+1;
}
}
int num=box_count+1;
System.out.println("一共需要"+num+"个箱子");
for(int i=0;i<=box_count;i++){
int j=i+1;
System.out.print("第"+j+"个箱子装有下面货物:");
int numx=0;
/*ArrayList mak=new ArrayList();*/
for (int m=0;m<resivolumle[i].length;m++){
if (resivolumle[i][m]!=0){
numx++;
}
}
for (int m=0;m<=numx;m++){
System.out.print(resivolumle[i][m]+" ");
}
System.out.println("");
}
}
}
为什么我的输入输出是这样的,代码哪里有问题
输入箱子大小
100
输入货物多少
6
输入每一个货物大小,一共需要6个
60 45 35 20 20 20
一共需要3个箱子
第1个箱子装有下面货物:1 0
第2个箱子装有下面货物:2 0
第3个箱子装有下面货物:6 0