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

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

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

Всем доброго времени суток. Помогите , пожалуйста разобраться с матрицами. Есть метод, с помощью которого юзер вводит матрицу с клавиатура. Помогите прописать проверку на магический квадрат (Если матрица магический квадрат, то вывести на экран- матрица- магический квадрат, иначе - матрица не является магическим квадратом). Ниже код метода
Листинг программы
  1. static void Cub()
  2. {
  3. Console.WriteLine("Введите размер квадратной матрицы: "); // Выводит сообщение в консоль
  4. int n = int.Parse(Console.ReadLine()); //считывает введенное значение и преобразует его в тип int и присваивает переменной n
  5. int[,] Matrix = new int[n, n]; // Инициализация двумерного массива (матрицы) с размером n,n
  6.  
  7. for (int i = 0; i < n; i++) // запускаем цикл от 0 до n
  8. {
  9. for (int j = 0; j < n; j++) // запускаем второй цикл внутри первого цикла от 0 до n
  10. {
  11. Console.WriteLine("Введите значение для [{0},{1}] элемента матрицы: ", i, j);
  12. Matrix[i, j] = int.Parse(Console.ReadLine()); //считывает введенное значение и преобразует его в тип int и присваивает матрице с индексом i,j
  13. Console.WriteLine();
  14. }
  15. }
  16. for (int i = 0; i < n; i++) // запускаем цикл от 0 до n
  17. {
  18. for (int j = 0; j < n; j++) // запускаем второй цикл внутри первого цикла от 0 до n
  19. {
  20. Console.Write(Matrix[i, j] + "\t");
  21. }
  22. Console.WriteLine();
  23. }
  24.  
  25. }

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

textual
Листинг программы
  1.  int[] Magic = new int[(2*n+2)];
  2.             for (int i = 0; i < n; i++)
  3.             {
  4.                 for (int j = 0; j < n; j++)
  5.                 {
  6.                     Magic[i] += Matrix[i,j];//пишем сумму строки
  7.                     Magic[i + n] += Matrix[j, i]; //пишем сумму столбца
  8.                 }
  9.             }
  10.             for (int j = 0; j < n; j++)
  11.             {
  12.                  Magic[0 + 2 * n] += Matrix[j, j];//пишем сумму диагонали главной
  13.                  Magic[1 + 2 * n] += Matrix[j,(n - j - 1)];//пишем сумму диагонали побочной
  14.             }
  15.             bool proverka = true;
  16.             for (int i = 1; i < Magic.Length ; i++)
  17.             {
  18.                 if (Magic[0] != Magic[i])
  19.                 {
  20.                     proverka = false;
  21.                     break;
  22.                 }      
  23.             }
  24.             if(proverka == false)
  25.                 Console.WriteLine("Введённая матрица не является магическим квадратом.");
  26.             else
  27.                 Console.WriteLine("Это магический квадрат!");

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


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

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

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы