0

したがって、ここに A = [1, 2, 3, 4, 5, 6] のような数値/配列のテーブルがあり、インデックスは A[0] = 1、A[1] = 2 ... A[i= 5] = 6 など

ここで、結果の配列が次のようになるように、基本的に 2 つの要素ごとに平均を取りたいと考えています。

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

forループで別の増分を使用します。

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

2番目の内側のループは必要ありません。

于 2013-11-07T21:00:27.153 に答える
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 に答える