Проверка матрицы на магический квадрат - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. Помогите , пожалуйста разобраться с матрицами. Есть метод, с помощью которого юзер вводит матрицу с клавиатура. Помогите прописать проверку на магический квадрат (Если матрица магический квадрат, то вывести на экран- матрица- магический квадрат, иначе - матрица не является магическим квадратом). Ниже код метода
 static void Cub()
        {
            Console.WriteLine("Введите размер квадратной матрицы: "); // Выводит сообщение в консоль
 
            int n = int.Parse(Console.ReadLine()); //считывает введенное значение и преобразует его в тип int и присваивает переменной n
            int[,] Matrix = new int[n, n]; // Инициализация двумерного массива (матрицы) с размером n,n 

                for (int i = 0; i < n; i++)  // запускаем цикл от 0 до n
                {
                    for (int j = 0; j < n; j++) // запускаем второй цикл внутри первого цикла от 0 до n
                    {
                        Console.WriteLine("Введите значение для [{0},{1}] элемента матрицы: ", i, j);
                        Matrix[i, j] = int.Parse(Console.ReadLine()); //считывает введенное значение и преобразует его в тип int и присваивает матрице с индексом i,j
                        Console.WriteLine();
                    }
                }
                for (int i = 0; i < n; i++)  // запускаем цикл от 0 до n
                {
                    for (int j = 0; j < n; j++) // запускаем второй цикл внутри первого цикла от 0 до n
                    {
                        Console.Write(Matrix[i, j] + "\t");
                    }
 
                    Console.WriteLine();
                }

        }

Решение задачи: «Проверка матрицы на магический квадрат»

textual
Листинг программы
 int[] Magic = new int[(2*n+2)];
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Magic[i] += Matrix[i,j];//пишем сумму строки
                    Magic[i + n] += Matrix[j, i]; //пишем сумму столбца
                }
            }
            for (int j = 0; j < n; j++)
            {
                 Magic[0 + 2 * n] += Matrix[j, j];//пишем сумму диагонали главной
                 Magic[1 + 2 * n] += Matrix[j,(n - j - 1)];//пишем сумму диагонали побочной
            }
            bool proverka = true;
            for (int i = 1; i < Magic.Length ; i++)
            {
                if (Magic[0] != Magic[i])
                {
                    proverka = false;
                    break;
                }       
            }
            if(proverka == false)
                Console.WriteLine("Введённая матрица не является магическим квадратом.");
            else
                Console.WriteLine("Это магический квадрат!");

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


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

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

9   голосов , оценка 4 из 5
Похожие ответы