Распечатка 3 элементов в массиве в строке - PullRequest
1 голос
/ 16 сентября 2011

У меня есть массив с количеством элементов x и я хочу распечатать три элемента в строке (с циклом for).

Пример:

123    343    3434
342    3455   13355
3444   534    2455

Полагаю, я мог бы использовать%, но я просто не могу понять, как это сделать.

Ответы [ 4 ]

2 голосов
/ 16 сентября 2011

Для цикла больше подходит:

var array = Enumerable.Range(0, 11).ToArray();
for (int i = 0; i < array.Length; i++)
{
    Console.Write("{0,-5}", array[i]);
    if (i % 3 == 2)
        Console.WriteLine();
}

Выходы:

0    1    2
3    4    5
6    7    8
9    10   
1 голос
/ 16 сентября 2011

Возможно, вам нужно исправить интервал форматирования ...

for(int i=0;i<array.Length;i++)
{
    Console.Write(array[i] + " ");
    if((i+1)%3==0)
        Console.WriteLine(); 
}
1 голос
/ 16 сентября 2011

Прокручивать массив 3 за раз и использовать String.Format () .

Это должно сделать это ...

for (int i = 0; i < array.Length; i += 3)
    Console.WriteLine(String.Format("{0,6} {1,6} {2,6}", array[i], array[i + 1], array[i + 2]));

Но есликоличество элементов в массиве не делится на 3, вам придется добавить некоторую логику, чтобы убедиться, что вы не выходите за пределы в последнем цикле.

0 голосов
/ 16 сентября 2011

Долго ... но с комментариями:

List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int count = list.Count;
int numGroups = list.Count / 3 + ((list.Count % 3 == 0) ? 0 : 1); // A partially-filled group is still a group!
for (int i = 0; i < numGroups; i++)
{
     int counterBase = i * 3;
     string s = list[counterBase].ToString(); // if this a partially filled group, the first element must be here...
     if (counterBase + 1 < count) // but the second...
          s += list[counterBase + 1].ToString(", 0");
     if (counterBase + 2 < count) // and third elements may not.
          s += list[counterBase + 2].ToString(", 0");
     Console.WriteLine(s);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...