簡體   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