【发布时间】:2018-09-24 20:02:38
【问题描述】:
int min = temperature[0];
//Here, i have initialized the minium array.
else if(temperature[i] < min) {
min = temperature[i];
在这里我比较了数组中的值。但是由于 min 的初始化为 0。它一直将最小值为零。我如何解决它。这是我的整个代码。
int[] temperature = new int[12];
Scanner kb = new Scanner(System.in);
int min = temperature[0];
int max = temperature[0];
int counter = 0;
for (int i = 0; i < temperature.length; i++) {
System.out.println("Please enter the temperature:" + i);
temperature[i] = kb.nextInt();
counter += temperature[i];
if (temperature[i] > max) {
max = temperature[i];
}
else if(temperature[i] < min) {
min = temperature[i];
}
}
int average = counter / temperature.length;
System.out.println("Displaying the average temperature:" + average);
System.out.println("The lowest temperature is:" + min);
System.out.println("The highest temperaature is:" + max);
}
}
【问题讨论】:
-
"但是由于 min 的初始化是 0。它会一直到最小值为零。" - 那么不要用
0初始化它。 -
你的数组中实际有哪些数据?
-
@Makoto数组中的数据只是用户输入的数字,例如温度。
-
因为 min 的初始化为 0:不是。它用温度[0]初始化。只是您在用户输入值之前初始化最小值,而不是之后。
-
作为最小值的初始猜测,您应该选择一个较高的值,例如
Integer.MAX_VALUE。否则你的数组元素没有机会低于最初的猜测。注意有Collections.min(Arrays.asList(myArray))和类似的。
标签: java arrays max average minimum