java - 求数组中数字的平均值并找出大于平均值的数字

标签 java arrays if-statement for-loop

我正在尝试使用用户输入将数字放入数组中,然后找到这些数字的平均值,并找出哪些数字大于平均值。这些数字将进入一个数组,但是当我尝试查找平均值时,我无法找到平均值以及哪些数字大于平均值,因为并非所有变量对于试图查找大于平均值的数字的部分都是可见的。但是,当我允许该部分查看所有变量(除了某些部分周围的 {})之外,它会找到每个单独数字的平均值。所以现在它打印每个数字的平均值,并且对于大于平均值的数字打印 null。如何让它打印所有 10 个数字的平均值以及哪些数字大于平均值?

import java.util.Scanner;
public class MeanAndHigher
{
public static void main(String [] args)
{
Scanner reader = new Scanner(System.in);
Number[]numbers = new Number[10];
Number[] greaterList = new Number[10];
int sum = 0;
int greaterListIndex = 0;
for (int i = 0; i < numbers.length; i++) {
    System.out.println("Enter a number: ");
    int a = reader.nextInt();
    sum += a ;
    {
        double average= sum/10;
        if (a > average)
            greaterList[greaterListIndex]=numbers[i];
        greaterListIndex++;
        System.out.println("The average is: " + average);
    }
}

System.out.println("Numbers greater than the average are: "); 
for( int i = 0; i < greaterListIndex; i++) {
    System.out.println(greaterList[i]);
}

}
}

最佳答案

您可以使用 Java 8 做这样简单的事情:

public static void main(String[] args) {
    int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    double average = Arrays.stream(array).average().getAsDouble();

    System.out.println("Average: " + average);

    System.out.println("Numbers Above Average: " + Arrays.stream(array).filter(i -> i > average).boxed().collect(Collectors.toList()));
}

关于java - 求数组中数字的平均值并找出大于平均值的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41865415/

相关文章:

ruby - 计算 Ruby 数组中的 Fixnums

php - 无论输入复选框数组中的值 =""(是否为空)均已检查

javascript - 需要编码作业方面的帮助!如何停止我的 if else 语句,使其只运行一次

java.io.IOException : Server returned HTTP response code: 403 for URL 异常

java - java中的MySQL语法错误

java - 嵌套通配符泛型变量矫揉造作

java - ./gradlew 运行构建失败

javascript - CoffeeScript 数组查找下一个位置

c++ - If 语句没有正确读取 char 变量

R:涉及多个数据帧的ifelse语句测试