[英]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.