我试图使用一种方法,以找出数组中的哪些数字大于20并返回一个百分比

Ant*_*man 0 java arrays algorithm math for-loop

这是我到目前为止所写的,我不知道从哪里开始:

public double findPercentageGreaterThanTwenty(int[] intArray) {
    double average = 0;
    for (int i = 0; i < intArray.length; i++) {
        sum = i;
        if (intArray[i] > 20) {
            average = (average + intArray[i]) / sum;
        }
    }
    return average;
}
Run Code Online (Sandbox Code Playgroud)

Nik*_*las 5

平均值与无关.当大于20的数字出现时,只需增加计数.

public double findPercentageGreaterThanTwenty(int[] intArray) {
    double count=0;
    for (int i=0; i < intArray.length; i++) {
        if (intArray[i] > 20) {
            count++;
        }
    }
    return count / intArray.length * 100; // returns the result in %
}
Run Code Online (Sandbox Code Playgroud)

表达式count / intArray.length返回介于0(即0%)和1(即100%)之间的值.将它乘以100可得出百分比结果.


或者对于其他人来说,使用Stream-API是Java 8解决方案.但是我推荐你第一个学习基础知识的解决方案:)

int[] array = {1, 2, 5, 9, 12, 23, 25, 31, 33, 48};
long count = Arrays.stream(array).filter(n -> n > 20).count();
System.out.println(count / array.length * 100);
Run Code Online (Sandbox Code Playgroud)