【发布时间】:2015-11-04 00:27:28
【问题描述】:
所以我试图在我的程序中打印出等于或高于平均值的时间。当我将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;
}
}
测试/演示
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
【问题讨论】: