我的任务是让用户输入10个数字,然后分别输出偶数和奇数的平均值。
所以我真的很接近搞清楚这个,但是当我运行代码时,我得到了错误java.lang.ArithmeticException: / by zero
。我知道这意味着什么,但我无法找到解决方法。即使我将even/oddAverage
计算放在Averages
方法中,它仍然不正确。
以下是代码:
public class Averages {
static int[] numbers = new int[10];
static int i = 0;
static int oddSum = 0;
static int evenSum = 0;
static int oddCount = 0;
static int evenCount = 0;
static double oddAverage = 0;
static double evenAverage = 0;
public static void Averages() {
for (i = 0; i < numbers.length; i++) {
if (i % 2 == 0) {
evenCount++;
evenSum = evenSum + i;
} else {
oddCount++;
oddSum = oddSum + i;
}
}
}
public static void getEven() {
evenAverage = evenSum / evenCount;
System.out.println("\nThe average of the even numbers is: " + evenAverage + ".");
}
public static void getOdd() {
oddAverage = oddSum / oddCount;
System.out.println("\nThe average of the odd numbers is: " + oddAverage + ".");
}
}
主要:
import java.util.Scanner;
public class AveragesTester {
public static void main (String [] args) {
Scanner input = new Scanner(System.in);
int i = 0;
System.out.println("\nPlease input " + 10 + " numbers.");
for (i = 0; i < Averages.numbers.length; i++){
Averages.numbers[i] = input.nextInt();
}
Averages.getEven();
Averages.getOdd();
}
}
在您将此标记为重复之前,我尝试使用上述问题修复代码无效。
答案 0 :(得分:1)
您没有调用平均构造函数来计算平均值。您正在调用静态方法而不计算平均值,因此您将除以零异常。