1

我正在尝试比较一个整数数组的元素,长度为 8 个元素(数组 [])将元素以 2 为一组相加,然后除以 2 得到平均值,例如数组 [0] + 数组 [1] / 2 和将结果分配给一个 4 个元素长的新数组。具体来说,我想以 2 个为一组进行比较,以查看其中一个/或两个是否小于 40,如果其中一个小于 40,我将它们相加并除以2 为平均值,并分配具有最小值的数组 (40, array[i]).. 但是,如果它们都高于 40,我仍然添加两个元素并除以 2,但将数组元素 [i] 分配给我得到的数字,不打扰最小计算

这是我到目前为止所拥有的

   for (int i = 0; i < array.length ; i++)
    {
        if (array[i] < 40 )
        {
            array2[j] = Math.min(35, array2[j]);
        }
    }

我认为 if 语句是正确的,但布尔参数远非如此。Array[] = 原始 8 元素数组... array2[] = 计算和平均的 4 个元素长的数组。非常感谢

4

2 回答 2

1

你是这个意思吗?希望我理解了这个问题。

for (int j = 0; j < array2.length; j++)
{
    double avg = (array[2 * j] + array[2 * j + 1]) / 2;
    if (array[2 * j] < 40 || array[2 * j + 1] < 40)
    {
        array2[j] = Math.min(avg, 40);
    } else {
        array2[j] = avg;
    }
}
于 2013-11-06T22:21:49.743 回答
0

我认为这抓住了你描述的逻辑(?)

int[] test = {
    22,44,
    52,36,
    35,41,
    63,24
};
double[] newarr = new int[test.length/2];

for (int i = 0; i < newarr.length; i++){
    newarr[i] = (test[i*2] + test[i*2+1]) / 2;
}

给出:

[33.0, 44.0, 38.0, 43.5]

正确的?

于 2013-11-06T22:22:11.197 回答