Умножение матриц - C# (181613)

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

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

Дали задание написать умножение матриц с помощью метода без использования класса Array. Написал, но выводит почему-то слишком подозрительные числа, иногда обнуляет столбцы. Буду благодарен за любую помощь
        static void Multiplication(out int[,] resMatrix, int[,] matrixA, int[,] matrixB, 
            int matrixARows, int matrixACols, int matrixBRows, int matrixBCols)
        {
            resMatrix = new int[matrixARows, matrixBCols];
 
            for (int i = 0; i < matrixARows; i++)
                for (int j = 0; j < matrixBCols; j++)
                    for (int k = 0; k < matrixBRows; k++)
                        resMatrix[i, j] = matrixA[i, k] * matrixB[k, j];
 
        }
Входные матрицы заполняю рандомно
        static void CreateRandomMatrix(ref int[,] matrix, int rows, int columns, int value)
        {
            Random r = new Random();
 
            for (int i = 0; i < rows; i++)
                for (int j = 0; j < columns; j++)
                    matrix[i, j] = r.Next(value);
        }
Вызов метода
CreateRandomMatrix(ref matrixA, matrixARows, matrixACols, 10);
CreateRandomMatrix(ref matrixB, matrixBRows, matrixBCols, 10);
 
int[,] mMatrix;
 
Console.WriteLine("\nMatrix C: MatrixA * MatrixB = ");
Multiplication(out mMatrix, matrixA, matrixB,
    matrixARows, matrixACols, matrixBRows, matrixBCols);
В сотый раз начал перечитывать код и только на форуме дошло. Вместо = нужно поставить +=. Всем спасибо
resMatrix[i, j] += matrixA[i, k] * matrixB[k, j];

Решение задачи: «Умножение матриц»

textual
Листинг программы
resMatrix[i, j] += matrixA[i, k] * matrixB[k, j]; // +=

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


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

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

10   голосов , оценка 3.6 из 5