如何获得未知数量的数字并显示第三大数字?

时间:2014-12-06 11:14:27

标签: java

正如标题所说,我不知道如何做到这一点,不能制作一个数组,因为不知道有多少数字?当用户输入输入“0”时,代码需要显示第三个最高编号。 编辑:无法列出或动态的数组

3 个答案:

答案 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)

您只需要一个包含三个插槽的阵列。到目前为止,一个插槽占据了最大的数量到目前为止,下一个广告位是第二大数字。到目前为止,第三个位置拥有第三大数字。

仔细阅读您的长号列表,保持小阵列的正确更新。无需存储三个以上的数字,加上您正在检查的当前数字。