我需要创建一个程序,询问客户他们有多少包(在输入后创建一个大小的数组),然后要求客户输入它们的权重。然后它必须将包分类为小,中或大,然后打印每个大小包的数量。
Path p = Paths.get("C:/Users/Public/Mycode/HelloWorld.java");
System.out.println(p.endsWith(".java")); // false
System.out.println(p.endsWith("HelloWorld.java")); // true
}
我让排序工作,但我只能要求一个包,这意味着我的数组和循环不起作用。刚刚学习阵列/循环,所以我有点坚持这个。
答案 0 :(得分:2)
它只询问一个包,因为您将intArray
初始化为一个只包含一个元素的数组。在您甚至不知道它需要多大之前,不要在其声明中毫无意义地初始化它,而是在输入其长度后创建并分配所需的数组。您可以选择将整个声明移到那里:
// ...
size = scan.nextInt();
int[] intArray = new int[size];
因为在这种情况下,我倾向于怀疑你声称你的分拣部件在工作 - 你没有合适的地方存放输入的重量。也许你从你提出的代码中删除了那部分。事实上,如果您的程序有任何类似的排序,那么您必须在其上执行相当多的黑客工作。
答案 1 :(得分:0)
问题是你的intArray初始化的时间。 在使用值0初始化大小之后初始化它。 因此,您最终会在阵列中使用单个元素。
您需要做的就是在用户输入后移动intArray的初始化:
int[] intArray;
System.out.printf("Please enter the number of weights to enter: ");
size = scan.nextInt();
intArray = new int[size]; //<-- initialization of the array after the user input
for (double i = 0; i < intArray.length; i++){