Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印高于特定值的数组值_Java_Arrays - Fatal编程技术网

Java 打印高于特定值的数组值

Java 打印高于特定值的数组值,java,arrays,Java,Arrays,我正在构建的方法应该打印方法中高于平均值的所有值。 我建立了计算平均值的方法,然后只打印高于该值的值 但是,它会打印正值 int total = 0; for (int i = 0; i < intList.length; i++) { total += intList[i]; { if (intList[i] > intList[total]) { S

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

但是,它会打印正值

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;
int-total=0;
for(inti=0;iintList[total])
{
System.out.println(intList[i]+“\t”);
}
}
}
返回总数;

如何使其如此,而不是打印所有正数它只打印数组中高于数组平均值的值?

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

您必须循环两次,一次用于计算平均值,然后当您得到计算的总数时,如果进行比较,则必须更改<代码>内部列表[i]>内部列表[total]至
内部列表[i]>总计

例如:

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");
        }        
    }
}
输出:

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

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

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
    }
}
for(int i=0;i总数){
打印
}
}

有一些伪代码/ish可以让您继续。

现在您的平均值是使用整数除法计算的,这将提高精度error@user2573153我也是这么说的,这和我的答案完全一样,但是用平均数加int
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
    }
}