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