2016-09-02 7 views
-2

内の各値を印刷:、私はこのような状況を持って円形配列

int[] array = new int[] {7, 5, 6} 

私のインデックスiの値は1で、それは私の架空の循環リストの先頭を指しています。ゼロ位置の値「7」はテールです。

私の目的は、印刷することです:

5,6,7 

は、私は特定の構造が必要ですか私は単純な配列でそれを行うことができますか?

+1

ソート配列、各インデックスを順番に印刷します。 – arbitrarystringofletters

+2

[C#でリストを回転する最も簡単な方法]の複製があります(http://stackoverflow.com/questions/9948202/easiest-way-to-rotate-a-list-in-c-sharp) – Liam

+0

'index =( index + 1)%array.Length; 'そういうもの。 –

答えて

1

すぐには何もありませんが、以下はアレイの周りを包み込むでしょう。あなたは5,6,7を印刷したい場合は

 int[] array = new int[] { 7, 5, 6 }; 
     int startPosition = 1; 
     string result = ""; 

     // Run from the start position to the end of the array 
     for (int i = startPosition; i < array.Length; i++) 
     { 
      result += array[i] + ","; 
     } 

     // Wrapping around, run from the beginning to the start position 
     for (int i = 0; i < startPosition; i++) 
     { 
      result += array[i] + ","; 
     } 

     // Output the results 
     result = result.TrimEnd(','); 
     Console.WriteLine(result);  
     Console.Read(); 
1

あなたが使用できます。シングルで

int printIndex = 1; 
for(int i = 0; i < array.Length; i++) 
{ 
    print(print(array[printIndex].ToString()); 
    printIndex++; 
    if(printindex >= array.Length) 
      printindex = 0; 
} 
4

をループし、モジュロ演算子 "のために":

int[] array = new int[] {7, 5, 6}; 

int start = 1; 

for (int idx=0; idx<array.Length; idx++) 
    Console.Write(array[(idx+start) % array.Length]); 
+0

ありがとう、これは正常に動作しています。 – Pickeroll

関連する問題