Заполнение матрицы по спирали - 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();
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5