我在计算平均值时遇到问题
数组中所有非负数,包括零(含零),否则返回零。以下是我的编码,请帮助我检查哪些部分不正确。谢谢。

  public class AverageOfNonNegativeNumbers {

  public static double averageOfNumbers(double[] x) throws Exception {
    double avg = 0.1;
    if (x != null) {
        for (double i = 0.1; i < x.length; i++) {
            if ( x[i]%2 == 0 ) {  //Anyone know how to set avoid calculate for negative numbers?
                avg = avg / x[i];  //This code is calculate total average number.
            }
        }
    }
    return avg;
}

public static void main(String args[]) {
    double x[] = {1.663, -2.1312, 3.13231, 4.124, -5.551, -6.1312, 7.111, 8.222, -9.01};
    try {
        System.out.println(AverageOfNonNegativeNumbers.averageOfNumbers(x));
    } catch (Exception e) {
        System.out.println("Error!!!");
    }
}
}

最佳答案

定义2个变量来存储非负数的sum和非负数的count

然后遍历数组并检查每个元素的非负性。如果为负数,则将该值添加到sum并将count递增1。

最后,将sum除以count得到平均值。

public static double averageOfNumbers(double[] x) {
    double sum = 0; // Variable to store the sum
    int count = 0; // Variable to keep the count

    if (x != null) {
        for (int i = 0; i < x.length; i++) {
            double value = x[i];
            if (value >= 0) { // Check if the number is non-negative
                sum += value; // Add the value to the current sum
                count++; // Increment the count by 1
            }
        }

    }
    return (count > 0) ? (sum /count) : 0; // Calculate the average if there were any non-negative numbers

}

关于java - 如何计算数组中所有非负数的平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58178072/

10-11 22:20
查看更多