我有一个接受整数数组的CountInRange Java程序,也要求用户输入最小值和最大值。然后输出数组中最小值和最大值之间的元素数。
为什么不起作用?
int [] num ={1, 21, 34, -54, 12, 15, 35};
int count = 0;
int i = 0;
int j = 0;
int min;
int max;
System.out.println("Enter minimum: ");
min = input.nextInt();
System.out.println("Enter maximum: ");
max = input.nextInt();
for (i = 0; i < num.length; i++){
for (j = 0; j < num.length; j++) {
if (num[i] >= min || num[i] <= max) {
count++;
}
}
}
System.out.println("There are "+count+" elements whose values fall between the maximum and the minimum value");
}
答案 0 :(得分:0)
至少不需要内部for循环,你应该摆脱它。
你还需要制作条件而不是或者它应该看起来像这样:
for (i = 0; i < num.length; i++){
if (num[i] >= min && num[i] <= max) { //AND INSTEAD OF OR
count++;
}
}
您正在测试该数字是否为&gt; = min OR num&lt; = max,这表示如果其中一个为真,则返回true,如果您的限制为min = 4
且max = 5
且{ {1}}它会返回true,因为num = 12
。