不确定我计算平均值的 java 程序有什么问题

问题描述 投票:0回答:1

做Mooc课程,我真的是编程新手,我只是不明白为什么它告诉我这是错误的。 4、3、6、1 的平均值是正确的,但当它测试 12、2、8、0 时,平均值不正确。

public class Averaging {

    public static int sum(int number1, int number2, int number3, int number4) {
        return number1 + number2 + number3 + number4;
    }

    public static double average(int number1, int number2, int number3, int number4) {
        int count = 0;
        if (number1 != 0) {
            count++;
        }
        if (number2 != 0) {
            count++;
        }
        if (number3 != 0) {
            count++;
        }
        if (number4 != 0) {
            count++;
        }
        double total = sum(number1, number2, number3, number4);
        double average = (double) total / count;
        return average;
    }

    public static void main(String[] args) {
        double result = average(4, 3, 6, 1);
        System.out.println("Average: " + result);
    }
}

本来我有total = sum(4, 3, 6, 1);改为 total = sum(number1, number2, number3, number4);这解决了一些问题。


average(4, 3, 6, 1)  // result: 3.5    ; expected: 3.5
average(12, 2, 8, 0) // result: 7.33333; expected: 5.5
java average
1个回答
0
投票

您正在计算平均值,应包括零。

如果您想保持代码结构不变,您可以简单地验证数字中是否存在值,而不是验证它们是否等于零。

所以你可以替换这些支票:

    if (number1 != 0)

通过

    if (number1 != null)

你会得到正确的平均值。

© www.soinside.com 2019 - 2024. All rights reserved.