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