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