Не могу найти простейшую ошибку в методе 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)
- {
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д