数组中小于或等于的元素数

public class ArrayExercise
{
    public static void main(String [] args)
    {
        int arr[] = { 3,4,14,32,45,61,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,42,0 };

这里的预期输出是 3,因为 42 之前的元素中有 3 个小于 23(3、14 和 18)。

tiancai61 回答:数组中小于或等于的元素数

您只需要在第一个语句中添加第二个 if 语句即可。

取而代之的是:

if (arr[i] != sentinel) {
    count++;
}
else {

做这样的事情:

if (arr[i] != sentinel) {
    if (/* put condition here */) {
        count++;
    }
}
else {

我确定您可以在最里面的 if 中填写缺少的条件。

本文链接:https://www.f2er.com/84.html

大家都在问