找到阵列的平均值,然后找到高于平均值的数字进行打印

时间:2017-11-16 14:43:43

标签: java arrays average

import java.util.Scanner;
public class ProjectFour {
    public static void main(String args[]) {
int[] firstArray = {1,2,3,2,1,6,3,4,5};
System.out.println("this is the average of array : "+analyzeNumbers(firstArray));
System.out.println("These are the numbers above the average : "+aboveAvg(firstArray));
    }
    //finding the average
    public static int analyzeNumbers(int[] firstArray){    
    int avg;
    avg=sumArray(firstArray);
    avg=avg/firstArray.length;
    return avg;
    }
    //suming the array method
    public static int sumArray(int[] firstArray){
    int sum = 0;
    for(int x=0;x<firstArray.length;x++){
        sum+=firstArray[x];
    }
    return sum;
}

**this is where im running into problems im kinda stumpted**

//这是我的方法我无法弄清楚试图取平均值并找到高于平均值的数组中的所有数字并打印它们。

 public static int aboveAvg(int[] firstArray){
    int[] aboveAvg;
    aboveAvg = new int[0];
    int x;
    for(x=analyzeNumbers(firstArray);x<firstArray.length;x++){
        aboveAvg+=firstArray[x];
    }
    return aboveAvg;
    }
    }

2 个答案:

答案 0 :(得分:0)

尝试使用for循环。

int sum = 0;
    for(int i = 0; i < firstArray; i++) {
int getSum = firstArray.get(i);
sum + getSum;
    }
int average = sum / firstArray.length;

int[] aboveAverage;
for(int c = 0; c < firstArray; c++) {
if(firstArray.get(c) > average) {
aboveAverage.add(firstArray.get(c));
}
}

答案 1 :(得分:0)

这个上面的Avg函数是完全错误的。

public static List<Integer> aboveAvg(int[] firstArray){
    List<Integer> aboveAvg = new ArrayList<Integer>();
    int Avg = analyzeNumbers(firstArray);
    for(int i = 0; i<firstArray.length; i++)
    {
        if(firstArray[i] > Avg)
        {
            aboveAvg.add(firstArray[i]);
        } 
    }
    return aboveAvg;
}
  • 检查你的for循环以及更多关于它的例子
  • + =将两个值相加,不会在任何数组上添加新元素。
  • 您必须正确定义返回值。
  • 您可以将List用于创建数组,它更灵活。