我是Java的新手,当我想将整数输入到数组中然后输出最低和最高值时,即使不输入0,最低值也始终为0。
import java.util.Scanner;
public class Arrays {
public static void main(String[] args) {
int array[] = new int[10];
int max = array[0], min = array[0];
Scanner input = new Scanner(System.in);
for ( int i=0 ; i<10 ; i++) {
array[i] = input.nextInt();
if(array[i]>max)
max = array[i];
if(array[i]<min)
min = array[i];
}
for ( int i=0 ; i<10 ; i++)
System.out.println(array[i]);
System.out.printf("The lowest number is %d"
+ " and the highest number is %d",min,max);
}
有人可以告诉我我的错误在哪里,为什么?
答案 0 :(得分:2)
错误在这里:
int max = array[0], min = array[0];
您将max
和min
初始化为0
,因为在这一点上,默认情况下该数组仅包含0
(因为尚未分配值) )。因此,如果所有输入均为正,则min
将保持0
。
要解决该问题,您可能需要先读取数组中的所有输入,然后使用第二个循环查找最小值和最大值。
另一种选择是将max
初始化为Integer.MIN_VALUE
,并将min
初始化为Integer.MAX_VALUE
。