Определить, является ли двумерный массив симметричным относительно главной диагонали - C#

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

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

Проверьте, является ли двумерный массив симметричным относительно главной диагонали. Главная диагональ — та, которая идёт из левого верхнего угла двумерного массива в правый нижний. Формат входных данных Программа получает на вход число n 100, являющееся числом строк и столбцов в массиве. Далее во входном потоке идет n строк по n чисел, являющихся элементами массива. Формат выходных данных Программа должна выводить слово yes для симметричного массива и слово no для несимметричного.
  int n = Convert.ToInt32(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; i++)
            {
                string[] s = Console.ReadLine().Split(' ');
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = Convert.ToInt32(s[j]);
                }
            }
 
            for (int i = 0; i < n; i++)
            
                for (int j = 0; j < n; j++)
                {
                    if (a[i, j] != a[j, i])
                        Console.WriteLine("no");
                }
                {
                    Console.WriteLine("yes");
                    Console.ReadLine();
Вот мое решение. у меня такая проблема на этот пример он выводит правильной ответ 3 0 1 2 1 2 3 2 3 4 а на этот правильный и неправильный 5 0 1 2 3 4 1 5 9 8 7 2 9 6 0 0 3 8 0 0 0 4 7 0 5 0 помогите,что я делаю не так не могу разобраться уже второй день

Решение задачи: «Определить, является ли двумерный массив симметричным относительно главной диагонали»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace SymmetricMatrix
{
    class Program
    {
        private static bool isSymetric(int[,] a)
        {
            if (a.GetLength(0) != a.GetLength(1)) return false;
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    if (a[i, j] != a[j, i]) return false;
                }
            }
            return true;
        }
 
        static void Main(string[] args)
        {
            Console.Write("N:= ");
            int n = Convert.ToInt32(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; i++)
            {
                Console.Write("Row #{0} numbers: ", i);
                string[] s = Console.ReadLine().Split(' ');
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = Convert.ToInt32(s[j]);
                }
            }
           
            if(isSymetric(a))Console.WriteLine("YES!");
            else Console.WriteLine("No!");
            Console.ReadLine();
        }
    }
}

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


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

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

11   голосов , оценка 4.091 из 5
Похожие ответы