Проверка матрицы на магический квадрат - 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("Это магический квадрат!");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д