繁体   English   中英

如何让我的 For 循环打印 Java 中数组中的最大数字?

[英]How do I get my For Loop to print the maximum number in an array in Java?

 `Scanner keyboard = new Scanner(System.in);
    int lengthOfArray;
    do {
            System.out.print("Enter an array length: ");
            lengthOfArray = keyboard.nextInt();
        } while (lengthOfArray <= 0);
        System.out.println();
        int[] array = new int [lengthOfArray];
        for(int c = 0; c < array.length; c++){
            array[c] = (int) (25*Math.random()) + 1;
        }
        
        for(int ix = 0; ix < array.length; ix++){
            System.out.print(array[ix] + " ");
        }
        System.out.println();
        int max = 0;
        for(int i = 0; i < array.length; i++){
            max = i;
            for(int j = i + 1; j < array.length; j++){
                if (array[j] > array[max])
                    max = j;
            }
            int temp = array[i];
            array[i] = array[max];
            array[max] = temp;
        }
        System.out.println("The maximum of the numbers in the array is: " + array[max]);`

这是我的代码^^它按顺序打印数组,但只是继续加载并且不打印最大数量。 我真的很陌生,如果我很愚蠢,我很抱歉。 提前致谢。

您的双for-loop确实以相反的顺序对数组进行排序,因为您将当前索引与下一个max交换

int max = 0;
for (int i = 0; i < array.length; i++) {
    max = i;
    for (int j = i + 1; j < array.length; j++) {
        if (array[j] > array[max]) {
            max = j;
        }
    }
    int temp = array[i];
    array[i] = array[max];
    array[max] = temp;
}

所以最后,最大值在索引0

System.out.println("The maximum of the numbers in the array is: " + array[0]);
System.out.println(Arrays.toString(array)); // simple way to print an array

由于这显然是一项任务,我不确定您是否可以使用流,但您可以使用 stream 如下:

max = Arrays.stream(array).max().getAsInt();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM