我正在构建的方法应该打印高于方法中平均值的所有值。 我已经构建了计算平均值的方法,然后只打印高于该数量的值。
然而,它打印的是正值。
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;
如何制作而不是打印所有正片,它只打印数组中高于平均值的数组中的值?
答案 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有些伪代码/是让你去的。