【发布时间】:2021-01-11 09:20:27
【问题描述】:
我想获取数组中的最小值和最大值。用户输入n个数组后,将打印该数组内的最小值和最大值。
这是一个示例输出
这是我目前的代码
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
try {
System.out.println("Enter array size: ");
int n = input.nextInt();
int [] array = new int[n];
int max = getMaxValue(array);
int min = getMinValue(array);
System.out.println("Enter " + n + " elements:");
for (int i = 1; i <= array.length; i++) {
array[i] = input.nextInt();
}
System.out.println("Max Value: " + max);
System.out.println("Min Value: " + min);
} catch (InputMismatchException e) {
System.out.println("INVALID INPUT >> PLEASE INPUT A NUMBER");
}
}
private static int getMaxValue(int[] array) {
int maxValue = array[0];
for (int i = 1; i < array.length; i++){
if (array[i] > maxValue){
maxValue = array[i];
}
}
return maxValue;
}
private static int getMinValue(int[] array) {
int minValue = array[0];
for (int i = 1; i < array.length; i++){
if (array[i] < minValue) {
minValue = array[i];
}
}
return minValue;
}
}
【问题讨论】:
-
问题出在哪里?
-
您必须在要求用户输入后计算最大值和最小值,而不是之前。
-
您还应该将 try/catch 放在更靠近输入的位置。按照您现在的方式,如果他们输入格式错误的文本,它会中断循环。
-
当我运行程序时,它没有显示数组中的最大值和最小值。例如,输入n个数组后,程序结束,但不显示最小值和最大值
-
它不显示数组中的最大值和最小值 - 因为当您调用 min/max 方法时,该数组不包含任何值。