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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут