我有一个二维数组,我计算元素的平均值。我正在寻找阵列中最小的数字,高于计算的平均值
int tmp, tmp1 = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (averageElements < array[i][j]) {
tmp = array[i][j];
if (tmp > tmp1) {
tmp1 = tmp;
}
}
}
}
System.out.println("Smallest element array higher than average " + tmp1);
例如:
1 1 2 1
1 1 1 5
1 1 1 9
1 1 3 1
平均要素2.16
高于平均值:3,5,9
数字中最小的数字高于平均值 - &gt; 3
答案 0 :(得分:1)
if (averageElements > array[i][j])
表示您只会查看 less 的值,而不是平均值,与您想要的完全相反。
tmp1 = 0
和if (array[i][j] > tmp1)
表示您正在寻找高于零的最大值,也与您想要的完全相反。如果所有的数值都是负数,它就不会起作用。
相反,试试这个:
int minValue = Integer.MAX_VALUE;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
int value = array[i][j];
if (averageElements < value && value < minValue) {
minValue = value;
}
}
}
System.out.println("Smallest element array higher than average " + minValue);