Проверить, является ли матрица магическим квадратом - C#

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

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

написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица "магическим квадратом". подскажите каким более удобным способом можно проверить матрицу. вот мой код , но он не работает . исправьте пожайлуста мой код и напишите свою версию.
Листинг программы
  1. Console.WriteLine("Введите размер матрицы ");
  2. Console.Write("-> ");
  3. int n = int.Parse(Console.ReadLine());
  4. int x = n;
  5. int z = n;
  6. int[,] mas;
  7. mas = new int[x, z];
  8. for (int i = 0; i < mas.Length; i++)
  9. {
  10. for (int j = 0; j < mas.Length; j++)
  11. {
  12. Console.WriteLine("Заполняем ряды матрицы. введите число и нажмите <Enter>");
  13. Console.Write("-> ");
  14. mas[i,j] = int.Parse(Console.ReadLine());
  15. if(j == 2)
  16. {
  17. break;
  18. }
  19. }
  20. if (i == 2)
  21. {
  22. break;
  23. }
  24. }
  25. for (int i = 0; i < mas.Length; i++)
  26. {
  27. for (int j = 0; j < mas.Length; j++)
  28. {
  29. Console.Write(mas[i,j] + " ");
  30. if (j == 2)
  31. {
  32. break;
  33. }
  34. }
  35. Console.WriteLine();
  36. if (i == 2)
  37. {
  38. break;
  39. }
  40. }
  41. int sum = 0;
  42. int sum2 = 0;
  43. int sum3 = 0;
  44. int sum4 = 0;
  45. int sum5 = 0;
  46. for (int i = 0; i < mas.Length; i++)
  47. {
  48. for (int j = 0; j < mas.Length; j++)
  49. {
  50. sum += mas[i, j];
  51. if(j == 2)
  52. {
  53. for ( i = 1; i < mas.Length; i++)
  54. {
  55. for ( j = 0; j < mas.Length; j++)
  56. {
  57. sum2 += mas[i, j];
  58. if(j == 2)
  59. {
  60. for ( i = 2; i < mas.Length; i++)
  61. {
  62. for ( j = 0; j < mas.Length; j++)
  63. {
  64. sum3 += mas[i, j];
  65. if(j == 2)
  66. {
  67. for ( j = 0; j < mas.Length; j++)
  68. {
  69. for ( i = 0; i < mas.Length; i++)
  70. {
  71. sum4 += mas[j,i];
  72. if(i == 2)
  73. {
  74. break;
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }
  81. }
  82. }
  83. }
  84. }
  85. }
  86. }
  87. Console.WriteLine("{0} {1} {2} {3}");

Решение задачи: «Проверить, является ли матрица магическим квадратом»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             int[,] arr = { { 2, 7, 6 },
  13.                            { 9, 5, 1 },
  14.                            { 4, 3, 8 } };
  15.  
  16.             Console.WriteLine(IsMagic(arr));
  17.  
  18.             Console.ReadKey();
  19.         }
  20.  
  21.         static bool IsMagic(int[,] arr) {
  22.  
  23.             int n = arr.GetLength(0);
  24.             if (n != arr.GetLength(1)) return false;
  25.  
  26.             int sum = n * (n * n + 1) / 2;          
  27.  
  28.             for (int i = 0; i < n; i++){
  29.                
  30.                 int sumRow = 0;
  31.                 int sumCol = 0;
  32.  
  33.                 for (int j = 0; j < n; j++){
  34.                    sumRow += arr[i,j];
  35.                    sumCol += arr[j,i];
  36.                 }
  37.  
  38.                 if (sumRow != sum || sumCol != sum) return false;
  39.             }
  40.  
  41.             int sumDiag1 = 0;
  42.             int sumDiag2 = 0;
  43.             for (int i = 0; i < n; i++)
  44.             {
  45.                 sumDiag1 += arr[i,i];
  46.                 sumDiag2 += arr[n - 1 - i, i];
  47.             }
  48.             if (sumDiag1 != sum || sumDiag2 != sum) return false;
  49.  
  50.             return true;
  51.         }
  52.     }
  53. }

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


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

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

11   голосов , оценка 3.455 из 5

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

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

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