public class ArrayExercise
{
public static void main(String [] args)
{
int arr[] = { 3, 4, 14, 32, 45, 61, 32, 18, 9, 38, 99, 42 };
int sentinel = 42;
int count = 0;
;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != sentinel) {
count++;
}
else {
break;
}
}
System.out.println(count);
}
}
我想用 42 计算数组中所有小于 23 的元素 作为比较值(Sentinel Value)。我被困在如何实现比较的第二部分。目前我的数组只计算不是 42 的元素数。
预期输出为 5,因为 42 之前的元素中有 5 个小于 23(3、4、14、18 和 9)。从我的代码观察到的输出是 11。
通过哨兵值我的意思是如果数组没有完全填满,当遇到哨兵值 42 时,计数仍应停止。示例:
int arr[] = { 3, 14, 32, 45, 18, 38, 42, 0, 0, 0, 0, 0 };
这里的预期输出是 3,因为 42 之前的元素中有 3 个小于 23(3、14 和 18)。
答案 0 :(得分:0)
您只需要在第一个语句中添加第二个 if
语句即可。
取而代之的是:
if (arr[i] != sentinel) {
count++;
}
else {
做这样的事情:
if (arr[i] != sentinel) {
if (/* put condition here */) {
count++;
}
}
else {
我确定您可以在最里面的 if
中填写缺少的条件。