Java 如何计算数组中数字的平均值?

Java How can I calculate the average of numbers in an array?

我坚持我的程序。它的作用基本上是将 100 个随机数生成一个数组。它以 4 行打印数字。之后,另一个for循环检查是否有数字可以被七整除,并且同时为偶数。如果有,它会将它们插入到另一个数组中。现在,我们不知道随机数组中有多少这样的数字,所以这基本上就是我坚持的地方。我有数组中数字的总和。但是不能计算元素的碎片。

import static java.lang.System.out;
import java.util.Random;


public class CSharp {

    public static void main(String[] args) {
        Random r = new Random();
        int[] numbers = new int[100];
        int[] canBeDividedBySeven = new int[100];
        int c = 0;
        int sum = 0;
        int average = 0;

        out.println("Random numbers: ");
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] += r.nextInt(90) + 10;

            out.print(numbers[i] + " ");
            if (i % 35 == 0) {  
                out.print("\n");
            }
        }

        out.println("\n\nNumbers that can be divided by 7 and are even: ");
        for (int j = 0; j < numbers.length; j++) {
            if (numbers[j] % 7 == 0 && numbers[j] % 2 == 0) {
                out.print(numbers[j] + " ");
                canBeDividedBySeven[c] += numbers[j];
            }
        }
        out.println("\n\nThe sum of the numbers in the 'canBeDividedBySeven': ");
        for (int y = 0; y < canBeDividedBySeven.length; y++) {
            sum += canBeDividedBySeven[y++];

        }
        out.print(sum);

    }

}

您缺少 1 个部分 - 在将其添加到数组 canBeDividedBySeven 时递增 c。如果你这样做,你可以通过 (double) sum / c.

得到平均值

基本上你的 canBeDividedBySeven 数组看起来像 [3283, 0, 0, 0, ..99 0's] 如果你增加 c (canBeDividedBySeven[c++] += numbers[j];) 它会看起来像 [14, 28, 14, 42, ...0, 0, 0],你可以用变量 c 找到这个数组的 "size"。实际大小始终为 100。

祝你好运!