数値を取る配列があります。私の方法の 1 つは、配列内の正の数の数を数えることです。したがって、2 3 4 5 6 と 0 を入力してプログラムを終了するとします。正の数値: 5 を出力する必要がありますが、代わりに正の数値: 4 を出力します。最後の数値を見逃しています。ただし、2 3 4 5 -1 4 0 {0 終了} を実行すると、この場合は 5 の正しい数の正の数が出力されます。デバッグを行ったが、理解できないようです。何か助けはありますか?
public static int countPositive(int[] numbers, int startIndex, int endIndex)
{
if (startIndex == endIndex)
{
if (numbers[startIndex] > 0)
{
return 1;
}
else
return 0;
}
else
{
if (numbers[startIndex] > 0)
{
return 1 + countPositive(numbers, startIndex +1, endIndex);
}
else
return countPositive(numbers, startIndex +1, endIndex);
}
}