左に配列要素を回転して別の配列に格納するC#関数を作成しようとしています。配列要素がC#で左回転 - 望ましくない出力
シフト=シフトの数を回転させるための配列を格納する必要があり、
INPUTR =アレイを回転するINPUTL =配列。
シフトの値を任意の値として渡しても、ローテーションは1回だけ行われます。助けてください。
public static void LeftShift(int[] inputl,int[] inputr, int shift)
{
for (int j = 0; j < shift; j++)
{
int temp = inputr[0];
var last = inputr.Length - 1;
for (int i = 0; i < last; i++)
{
inputl[i] = inputr[i+1];
}
inputl[last] = temp;
}
}
}
詳細を教えてください –
同じ配列をシフト(* inp utr *)n回、あなたは同じ出力を得るbeacuse * inputr *は変わらない。新しい配列(* inputl *)を次の繰り返しでソース配列として使用する必要があります。/ –
または、 'var inputr = new int [] {1、2、3、4、5、6}; int shift = 2; var inputl = inputr.Skip(shift).Concat(inputr.Take(shift)).ToArray(); 'ちょうど楽しみのために。 –