0

所以我有一个数字/数组表,像这里 A = [1, 2, 3, 4, 5, 6],索引是 A[0] = 1, A[1] = 2 ... A[i= 5] = 6 等等。

现在我想基本上取每两个元素的平均值,这样我的结果数组如下:

B = [1.5, 3.5, 5.5],其中 B[0] = (A[0] + A[1])/2,B [1] = (A[2]+A[3])/2,并且B[2] = (A[4]+A[5])/2

我的代码不断犯错误,还考虑了添加, (A[1] + A[2])/2 等等等等,给我以下结果数组,

[1.5, 2.5 , 3.5, 4.5 , 5.5]

我不需要粗体元素。我不确定为什么会这样,但这就是我所拥有的:

for(i=0; i<=5; i+=1)
    B[i] = (A[i] + A[i+1])/2 
    for(j=i+(i+2); j<=5; j+=1)
       B[j] =  (A[j]+ A[j+1])/2
    endfor
endfor

谁能告诉我做错了什么?

4

2 回答 2

0

我认为你让这比现在更复杂。您在计算中需要数组中的前 2 个值,然后需要接下来的 2 个值,依此类推。这只需要 1 次循环遍历数组。

像这样的东西:

j = 0 
for(i=0; i<=5; i+=2)
    B[j] = (A[i] + A[i+1])/2 
    j += 1
endfor

您可能需要检查 中是否存在等量的值A,否则A[i+1]可能会导致错误。

于 2013-11-07T21:06:11.113 回答
0

for在循环中使用不同的增量:

j=0
for (i=0;i<=5;i+=2)
  B[j]=(A[i]+A[i+1])/2
  j+=1
end for

你不需要第二个内循环。

于 2013-11-07T21:00:27.153 回答