Мне нужно использовать этот метод:
public static int countNegative(double[] numbers, int count){ }
для подсчета количества отрицательных чисел в двойном массиве. Я мог бы легко это сделать, если бы мог включить третий параметр, сумму, но я могу использовать только массив и целое число. Я полностью застрял. Я пробовал несколько вещей, но не могу понять это правильно. Я получил все, от размера массива до ArrayIndexOutOfBounds, но никогда не получал правильного ответа. Может ли кто-нибудь помочь мне с этим?
-РЕДАКТИРОВАТЬ-
Ну вот точное задание:
Напишите программу, которая считывает последовательность чисел (не обязательных целых чисел) из стандартного ввода до тех пор, пока не будет прочитан 0, и сохраняет их в массиве, аналогично тому, что вы делали в задании 2. Эта часть выполняется с помощью итерации. Можно предположить, что номеров будет не более 100.
Затем вычислите максимальное число, хранящееся в массиве, количество отрицательных чисел и вычислите сумму положительных чисел, используя рекурсию. Таким образом, вы создадите рекурсивные методы findMax, countNegative и calculateSumPositive в классе Assignment9, и они будут вызываться основным методом.
В частности, должны быть реализованы следующие рекурсивные методы (эти методы не должны содержать циклов):
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 calculateSumPositive(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);
}
Я должен быть в состоянии вычислить вычислениеSumPositive, если я могу вычислить это отрицательное значение.
Граф может быть таким, каким вам нужно. Я использовал его больше как индекс в findMax.
count
? Будет очень полезно, если вы процитируете требования, указанные в вопросе, а также покажете суть испробованного вами кода. - person David Z   schedule 28.03.2013