Не могу найти простейшую ошибку в методе Main - C#

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
        
        class Matrix {
        /// <summary>
        /// Поиск определителя матрицы
        /// </summary>
        /// <param name="matrix"></param>
        static public double GetDeterminant(double[,] matrix) {
            if (matrix.GetLength(0) != matrix.GetLength(1))
                throw new Exception("Матрица должна быть квадратной!");
            /// Если матрица 2Г—2, то возвращаем определитель по формуле Крамера
            if (matrix.GetLength(0) == 2)
                return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
            int sign = 1;//Знак минора
            double result = 0;
            int j = 0;//Номер столбца, по которому раскладывается матрица
            for (int i = 0; i < matrix.GetLength(0); i++) {
                /// Если номер столбца и строки одновременно чётные, то
                /// знак будет «+», иначе — «-»
                sign = ((i + 1) % 2 == (j + 1) % 2) ? 1 : -1;
                result += sign * matrix[i, j] * GetDeterminant(GetMinorMatrix(matrix, i, j));
            }
            return result;
        }
        /// <summary>
        /// Метод для вычисления минорной матрицы для заданного элемента
        /// </summary>
        /// <param name="matrix">Исходная матрица</param>
        /// <param name="row">Номер строки</param>
        /// <param name="col">Номер столбца</param>
        static public double[,] GetMinorMatrix(double[,] matrix, int row, int col) {
            double[,] result = new double[matrix.GetLength(0) - 1, matrix.GetLength(1) - 1];
            int m = 0, k;
            for (int i = 0; i < matrix.GetLength(0); i++) {
                if (i == row) continue;
                k = 0;
                for (int j = 0; j < matrix.GetLength(1); j++) {
                    if (j == col) continue;
                    result[m, k++] = matrix[i, j];
                }
                m++;
            }
            return result;
        }
    } 
}
}

Решение задачи: «Не могу найти простейшую ошибку в методе Main»

textual
Листинг программы
using System;
 
namespace ConsoleApplication1
{
    class Matrix
    {
        /// <summary>
        /// Поиск определителя матрицы
        /// </summary>
        /// <param name="matrix"></param>
        static public double GetDeterminant(double[,] matrix)
        {
            if (matrix.GetLength(0) != matrix.GetLength(1))
                throw new Exception("Матрица должна быть квадратной!");
            /// Если матрица 2Г—2, то возвращаем определитель по формуле Крамера
            if (matrix.GetLength(0) == 2)
                return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
            int sign = 1;//Знак минора
            double result = 0;
            int j = 0;//Номер столбца, по которому раскладывается матрица
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                /// Если номер столбца и строки одновременно чётные, то
                /// знак будет «+», иначе — «-»
                sign = ((i + 1) % 2 == (j + 1) % 2) ? 1 : -1;
                result += sign * matrix[i, j] * GetDeterminant(GetMinorMatrix(matrix, i, j));
            }
            return result;
        }
        /// <summary>
        /// Метод для вычисления минорной матрицы для заданного элемента
        /// </summary>
        /// <param name="matrix">Исходная матрица</param>
        /// <param name="row">Номер строки</param>
        /// <param name="col">Номер столбца</param>
        static public double[,] GetMinorMatrix(double[,] matrix, int row, int col)
        {
            double[,] result = new double[matrix.GetLength(0) - 1, matrix.GetLength(1) - 1];
            int m = 0, k;
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                if (i == row) continue;
                k = 0;
                for (int j = 0; j < matrix.GetLength(1); j++)
                {
                    if (j == col) continue;
                    result[m, k++] = matrix[i, j];
                }
                m++;
            }
            return result;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

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


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

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

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