首页 > 解决方案 > 如何在双数组中找到非零数?

问题描述

如果我有这样的双数组:

[0.0,12.0.0,0.0,0.0,0.0,6.0,5.0,0.0]

而且我会计算仅不是 0.0 数字的平均值,为什么这段代码不能正常工作?

public static double Average(double[] myarray) throws IllegalArgumentException {
        double dValue = 0.0;
        int counter=1;
        if (myarray== null) {
            throw new IllegalArgumentException("The array must be defined or diferent to null");
        }
        if (myarray.length == 0) {
            throw new IllegalArgumentException("The array must have size greater than zero");
        }
        for(int i = 0 ; i < myarray.length ; i++) {
            if(myarray[i] > 0.0){
                counter++;
                dValue += myarray[i]/counter;
            }
        }
        return dValue;
    }

标签: javaandroid

解决方案


在循环之后除以counter,而不是在其中。

实际上,您必须始终除以最终计数器值减去一(不是递增值),这在循环期间是不可能的。


推荐阅读