Так что я пытаюсь распечатать время в моей программе, равное или превышающее среднее значение. Когда я добавляю print()
в мой метод, он работает нормально, но когда я печатаю его по своему основному методу, он печатает все значения, которые он должен, за исключением того, что он дважды печатает последнее значение. Прежде чем я получил ArrayIndexOutOfBoundsException
, я исправил проблему, но, похоже, что-то все еще отключено. Я застрял на том, чтобы это работало какое-то время, но не может это исправить! Я смотрел онлайн и через кучу форумов и пытался реализовать разные предложения, но я до сих пор не могу заставить его работать.Печать выше среднего раза из гонки
Буквально любая помощь или предложения были бы весьма признательны.
public class MarathonRunner {
//Finding the average
public static double getAverageTime(int[] times) {
int sum = 0;
double average;
for (int i = 0; i < times.length; i++) {
sum = sum + times[i];
}
average = (double) sum/times.length;
return average;
}
//Finding above Average
public static int getAboveAverage(int[] times) {
int aboveAverage = 0;
for (int i = 0; i < times.length; i++) {
if ((double)times[i] >= getAverageTime(times)) {
aboveAverage = times[i];
System.out.println(aboveAverage);
}
}
return aboveAverage;
}
}
Test/Demo
public class TestMarathonRunner {
public static void main(String[] args) {
int times[] = { 341, 273, 278, 329, 445, 275, 275, 243, 334, 412,
393, 299, 343, 317, 265 };
System.out.println("The average time is: " +
MarathonRunner.getAverageTime(times));
System.out.println(MarathonRunner.getAboveAverage(times)) ;
Печать
341
329
445
334
412
393
343
The average time is: 321.46666666666664
341
329
445
334
412
393
343
343
Ооо, что имеет смысл, я думал, что мой метод был уже настроен для печати всех времен, которые были выше среднего , а не только последний, не должен ли я продолжать работать через него? Мне нужно, чтобы он распечатывал их все из основного, я добавил print() в метод, чтобы увидеть, работает ли он. – CheyBateman
Хорошо, в этом случае, возможно, вы можете заставить getAboveAverage возвращать массив или список индексов, содержащих все времена, которые выше среднего, а затем перебирать их по основному методу. –
Серьезно спасибо, теперь это имеет смысл. – CheyBateman