Заполнение матрицы по спирали - C# (190003)
Формулировка задачи:
Всем привет!
Интересную задачу решаю)
Задача
Для матрицы задается любое число , скажем 9
и на консоль должно выходить вот таким образам
1 2 3
8 9 4
7 6 5
это только для 9 ) Но суть в том что заданное число должно в середине встать )
Как реализовать даже нету мыслей) есть идея ?
Решение задачи: «Заполнение матрицы по спирали»
textual
Листинг программы
static void DisplayArray(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++) Console.Write("{0,3} ", a[i, j]);
Console.WriteLine();
}
}
static void Main(string[] args)
{
while (true)
{
Console.Write("Enter a non-negative number (0 - exit): ");
int n;
if (!Int32.TryParse(Console.ReadLine(), out n) || n <= 0) break;
Console.WriteLine();
int[,] a = new int[n, n];
int i = 0, j = 0;
int value = 1;
while (n != 0)
{
int k = 0;
do { a[i, j++] = value++; } while (++k < n - 1);
for (k = 0; k < n - 1; k++) a[i++, j] = value++;
for (k = 0; k < n - 1; k++) a[i, j--] = value++;
for (k = 0; k < n - 1; k++) a[i--, j] = value++;
++i; ++j; n = n < 2 ? 0 : n - 2;
}
DisplayArray(a);
Console.WriteLine();
}
}