我不知道为什么我没有选择最小的数字。最大数字是正确的,例如:try:129,2,3。
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int list[] = new int[3];
int min = list[0];
int max = list[0];
int input;
for (input = 0; input < list.length; input++) {
String s = reader.readLine();
list[input] = Integer.parseInt(s);
if (list[input] < min) {
min = list[input];
} else if (list[input] > max) {
max = list[input];
}
}
System.out.println("Smallet nummber: " + min);
System.out.println("Biggest nummber: " + max);
}
答案 0 :(得分:1)
像这样初始化您的最小值和最大值:
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
也将条件部分更改为此:
if (list[input] < min) {
min = list[input];
}
if (list[input] > max) {
max = list[input];
}
使用 list [0] 进行初始化时,min和max都将初始化为0。现在,如果输入值小于0,则仅 min 值将被更新。否则,最小值将永远不会更新。
答案 1 :(得分:1)
初始化这样的数组时:
int[] list = new int[3];
其所有项目均为0
。
因此,当您初始化最小值和最大值时:
int min = list[0];
int max = list[0];
您同时分配了两个0
。
如果您只想保持1个循环以获取输入并获取min
和max
,则可以执行以下操作:
if (input == 0) {
min = list[input];
max = list[input];
} else if (list[input] < min) {
min = list[input];
} else if (list[input] > max) {
max = list[input];
}
答案 2 :(得分:0)
min为0,且始终小于list [imput]。情况:
if (list[input] < min) {
从不发生。 在您的arrayList中使用一个负数;)