我需要使用这种方法:
public static int countNegative(double[] numbers, int count){ }
计算双精度数组中负数的数量。如果我可以包含第三个参数 sum,我可以很容易地做到这一点,但我只能使用数组和一个 int。我完全被困住了。我已经尝试了几件事,但无法做到正确。我已经得到了从数组大小到 ArrayIndexOutOfBounds 的所有内容,但从来没有正确的答案。谁能帮我解决这个问题?
-编辑-
那么这里是确切的任务:
编写一个程序,从标准输入读取一系列数字(不是必需的整数),直到读取到 0,并将它们存储在一个数组中,类似于您在赋值 2 中所做的。这部分是使用迭代完成的。您可以假设不会有超过 100 个数字。
然后计算存储在数组中的最大数,负数的计数,并使用递归计算正数的总和。因此,您将在 Assignment9 类中创建递归方法 findMax、countNegative 和 computeSumPositive,它们将由 main 方法调用。
具体来说,必须实现以下递归方法(这些方法不应包含任何循环):
public static double findMax(double[] numbers, int count) -> It finds the maximum number in the array, count is the number of elements
在数组中
public static int countNegative(double[] numbers, int count) -> 计算负整数
public static double computeSumPositive(double[] numbers, int count) -> 对正整数求和
findMax() 很简单:
public static double findMax(double[] numbers, int count){
if(numbers.length - 1 == count)
return numbers[count];
else
return Math.max(numbers[count], findMax(numbers, count+1));
}
这是我最近对 countNegative 的尝试。它只返回 99(我用 100 个元素初始化了数组):
public static int countNegative(double[] numbers, int count){
int i=0;
if(numbers[count]<0)
i=1;
if(numbers.length-1==count)
return count;
else
return i+countNegative(numbers,count+1);
}
如果我能算出这个负数,我应该能够算出 computeSumPositive。
计数可以是你需要的任何东西。我更多地将它用作 findMax 中的索引。