打印超过特定值的数组值

时间:2013-12-14 01:23:24

标签: java arrays

我正在构建的方法应该打印高于方法中平均值的所有值。 我已经构建了计算平均值的方法,然后只打印高于该数量的值。

然而,它打印的是正值。

int total = 0;
    for (int i = 0; i < intList.length; i++)
    {
        total += intList[i]; 
        {
            if (intList[i] > intList[total]) 
            {
                System.out.println(intList[i] + "\t");
            }
        }
    }


    return total;

如何制作而不是打印所有正片,它只打印数组中高于平均值的数组中的值?

4 个答案:

答案 0 :(得分:3)

您需要两个不同的循环。一个将所有数字加在一起得到总数。然后你需要得到该总数的平均值。然后再次循环检查并打印

答案 1 :(得分:0)

你必须循环2次,一次用于计算平均值,然后当你得到总计算时,你必须改变,如果比较。 intList[i] > intList[total]intList[i] > total

示例:

public static void main(String args[]){
    int[] intList = {1,2,3,4,5,6,7,8,9,10};
    int total = 0;
    // first loop calculate 
    for (int i : intList){
      total += i; 
    }

    double average = total / (double)intList.length;//take care array can't be empty.

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

    //then show 
    for(int i : intList){
        if (i > average){
          System.out.println(i + "\t");
        }        
    }
}

答案 2 :(得分:0)

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

    double sum = 0;
    for (int value : values)
        sum += value;

    double avg = sum / values.length;

    System.out.printf("AVG = %.2f\n----------\n", avg);

    for (int value : values) {
        if (value > avg)
            System.out.println(value);
    }
}

输出:

AVG = 4.50
----------
5
6
7
8

答案 3 :(得分:0)

上面的答案将它钉在上面,你的第二个循环不是将它与平均值相比较,而是将其与总数进行比较。首先需要一个循环来获得数组的平均值,然后需要第二个循环来测试数组的平均值。

for (int i = 0;i < array.count; i++){
    total = total + array[i]
}
average = total / array.count
for (int i = 0;i < array.count; i++){
    if (array[i]>total){
       print
    }
}

Theres有些伪代码/是让你去的。