Проверить, является ли матрица магическим квадратом - C#
Формулировка задачи:
написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица "магическим квадратом".
подскажите каким более удобным способом можно проверить матрицу.
вот мой код , но он не работает .
исправьте пожайлуста мой код и напишите свою версию.
Console.WriteLine("Введите размер матрицы "); Console.Write("-> "); int n = int.Parse(Console.ReadLine()); int x = n; int z = n; int[,] mas; mas = new int[x, z]; for (int i = 0; i < mas.Length; i++) { for (int j = 0; j < mas.Length; j++) { Console.WriteLine("Заполняем ряды матрицы. введите число и нажмите <Enter>"); Console.Write("-> "); mas[i,j] = int.Parse(Console.ReadLine()); if(j == 2) { break; } } if (i == 2) { break; } } for (int i = 0; i < mas.Length; i++) { for (int j = 0; j < mas.Length; j++) { Console.Write(mas[i,j] + " "); if (j == 2) { break; } } Console.WriteLine(); if (i == 2) { break; } } int sum = 0; int sum2 = 0; int sum3 = 0; int sum4 = 0; int sum5 = 0; for (int i = 0; i < mas.Length; i++) { for (int j = 0; j < mas.Length; j++) { sum += mas[i, j]; if(j == 2) { for ( i = 1; i < mas.Length; i++) { for ( j = 0; j < mas.Length; j++) { sum2 += mas[i, j]; if(j == 2) { for ( i = 2; i < mas.Length; i++) { for ( j = 0; j < mas.Length; j++) { sum3 += mas[i, j]; if(j == 2) { for ( j = 0; j < mas.Length; j++) { for ( i = 0; i < mas.Length; i++) { sum4 += mas[j,i]; if(i == 2) { break; } } } } } } } } } } } } Console.WriteLine("{0} {1} {2} {3}");
Решение задачи: «Проверить, является ли матрица магическим квадратом»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[,] arr = { { 2, 7, 6 }, { 9, 5, 1 }, { 4, 3, 8 } }; Console.WriteLine(IsMagic(arr)); Console.ReadKey(); } static bool IsMagic(int[,] arr) { int n = arr.GetLength(0); if (n != arr.GetLength(1)) return false; int sum = n * (n * n + 1) / 2; for (int i = 0; i < n; i++){ int sumRow = 0; int sumCol = 0; for (int j = 0; j < n; j++){ sumRow += arr[i,j]; sumCol += arr[j,i]; } if (sumRow != sum || sumCol != sum) return false; } int sumDiag1 = 0; int sumDiag2 = 0; for (int i = 0; i < n; i++) { sumDiag1 += arr[i,i]; sumDiag2 += arr[n - 1 - i, i]; } if (sumDiag1 != sum || sumDiag2 != sum) return false; return true; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д