正如标题所说,我不知道如何做到这一点,不能制作一个数组,因为不知道有多少数字?当用户输入输入“0”时,代码需要显示第三个最高编号。 编辑:无法列出或动态的数组
答案 0 :(得分:1)
如果您保留前3个数字的数组并继续排序......
Scanner scanner = new Scanner(System.in);
int[] largest = new int[3];
while (scanner.hasNext()) {
int number = scanner.nextInt();
scanner.nextLine();
if (number == 0) {
break;
}
if (number > largest[0]) {
largest[0] = number;
}
Arrays.sort(largest);
System.out.println(Arrays.toString(largest));
System.out.println(largest[0]);
}
scanner.close();
System.out.println("Third largest " + largest[0]);
答案 1 :(得分:0)
您应该使用ArrayList
。您可以使用以下命令初始化列表:
List<Integer> l = new ArrayList<Integer>();
而不仅仅是用
添加元素l.add(value);
数组列表会自动为您分配更多空间。希望有所帮助。
答案 2 :(得分:0)
您只需要一个包含三个插槽的阵列。到目前为止,一个插槽占据了最大的数量到目前为止,下一个广告位是第二大数字。到目前为止,第三个位置拥有第三大数字。
仔细阅读您的长号列表,保持小阵列的正确更新。无需存储三个以上的数字,加上您正在检查的当前数字。