2017-01-19 10 views
-3

どうすればいいですか?たとえば、コンソール上で行の3つの要素を出力する例がありますか?アレイ全体でこれをやっていますか? Java Scannerのようなものがありますか?配列Cから特定の数の要素を出力する#

+0

例を示してください。 –

答えて

1

あなたはこのようないくつかのことを行うことができます。要素を1行に印刷し、3つの要素を連続して印刷した後、新しい行に移動します。

for(int i=0; i<arr.Length; ++i) { 
     Console.Write(arr[i]+" "); 

     if((i+1)%3==0){ 
      Console.WriteLine("");  
     } 
    } 
+0

助けてくれてありがとう! – LrndED

1

これを行う1つの方法は、forループを使用することです。

// input already defined as array 
for (int i = 0; i < input.Length; i += 3) { 
    Console.WriteLine(input[i] + ' ' + input[i + 1] + ' ' + input [i + 2]); 
} 

これには、配列の長さが3の倍数である必要があります。そうでない場合は、配列内にinput[i + 1]input[i + 2]が存在するかどうかをチェックするロジックを追加する必要があります。

for (int i = 0; i < input.Length; i += 3) { 
    if (i + 2 >= input.length) { 
     Console.WriteLine(input[i] + ' ' + input[i + 1] + ' ' + input[i + 2]); 
    } else if (input[i + 1] >= input.length) { 
     Console.WriteLine(input[i] + ' ' + input[i + 1]); 
    } else { 
     Console.WriteLine(input[i]); 
    } 
} 
+0

'if(input [i + 2])'が* typo *のように見えます。 'if(input.Length <...)'が必要なようなもの –

1

LINQのソリューション:

int[] data = Enumerable.Range(1, 20).ToArray(); 

    int groupSize = 3; 

    var result = Enumerable 
    .Range(0, data.Length/groupSize + 
      (data.Length % groupSize == 0 ? 0 : 1)) 
    .Select(index => data.Skip(index * groupSize).Take(groupSize)) 
    .Select(items => string.Join(", ", items)); 

    Console.Write(string.Join(Environment.NewLine, result)); 

出力:

1, 2, 3 
4, 5, 6 
7, 8, 9 
10, 11, 12 
13, 14, 15 
16, 17, 18 
19, 20 
+0

素敵なコード。 Linqのためのインストラクション。おそらく質問以上の頭に:) – GantTheWanderer

1

arrayElementsを入力してみましょう

可能性は、やや冗長な解決策とはいえ、そのようになります指定したサイズのチャンクにそれらをグループ化できます。各グループからの値を収集し、それを表示するd次の

List<int> arrayElements = new List<int>() { 1,5,2,3,6,4,87,96,54,5,4,5,6,2,5,9,5,5,5,6,2,45,6}; 

int chunkSize = 3; 
var results = arrayElements.Select((x, i) => new { Key = i/chunkSize , Value = x }) 
          .GroupBy(x => x.Key, x => x.Value) 
          .Select(x=>String.Join(" ",x.ToList())) 
          .ToList(); 

foreach (string chunk in results) 
{ 
    Console.WriteLine(chunk); 
} 

Working Example

関連する問題