2012-03-25 49 views
1

私はループがあり、N = 50です。ループ内に配列(ベクトル)があります。私の条件は:もしmod 10 == 0ならば、ベクトルの総和の値を保存する。だから、ループを終了した後、ベクトルに5つの値が格納されると期待します。どのように私は50の値すべてを格納せずにそれを行うことができます。ループ内の配列に値を格納する方法は?

私の例: 私のベクトルは(0 0 0 0 0 0 0 0 20 0 0 0 ...)を保存します。私はちょうど最初の行に20を保存し、それを5回繰り返すだけです。私はN = 50でなく、5を使わなければなりません。 enter image description here enter image description here

答えて

6

shift registersで簡単です:1つの繰り返しから構築されている配列をもう1つの繰り返しに渡し、i%10==0をケース構造でテストします。 trueに現在の値を配列に追加します。それ以外の場合は変更しないでください。

VI snippet

+0

を無視することによって意味されています私の例を参照してください。上記の私の例でシフトレジスタを実装する方法。 – thalsharif

+1

ループの出力トンネルを右クリックするとコンテキストメニューに入ります。ケースの後に現在持っている「連結/追加」ノードをケースの中に入れます。 – CharlesB

1

私は私があなたの質問を理解して確認していません。あなたの現在の状態では、i == 10で、ベクトルに格納される値は1つだけではなく、ベクトルに格納されます(つまり、値10のみがベクトルに格納されます)。

iが10の倍数であるたびに数値を保存したい場合は、ループ内に条件を追加して、i mod 10 == 0かどうかを確認するだけです。結果が真そうでなければ、iの値を無視する。あるいは、1から5回ループして、ベクトルにi * 10を追加することもできます。結果は同じになります。

+0

私はabove.youが言った例を追加し、「結果が真であれば、私は、ベクターに追加するそれ以外の場合は、iの値を無視」どのように私は、iの値を無視して、ベクトルで私を保存することはできません。 – thalsharif

+0

いつでもベクトルをそのまま残すことができます。それは値 –

関連する問題