Перемножение матриц - C# (200099)

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

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

можете помоч с задачей: нужно написать программу, которая перемножает 2 матрицы и выводит результат. Программы должна работать так: пользователь вводит значения элементов обеих матриц и если количество столбцов первой матрицы не совпадает с количеством строк второй, то прога говорит, что перемножить нельзя , если совпадают, то перемножает)

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

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Console.WriteLine("Введите размерность первой матрицы: ");
  10.             int[,] A = new int[Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine())];
  11.             for (int i = 0; i < A.GetLength(0); i++)
  12.             {
  13.                 for (int j = 0; j < A.GetLength(1); j++)
  14.                 {
  15.                     Console.Write("A[{0},{1}] = ", i, j);
  16.                     A[i, j] = Convert.ToInt32(Console.ReadLine());
  17.                 }
  18.             }
  19.             Console.WriteLine("Введите размерность второй матрицы: ");
  20.             int[,] B = new int[Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine())];
  21.             for (int i = 0; i < B.GetLength(0); i++)
  22.             {
  23.                 for (int j = 0; j < B.GetLength(1); j++)
  24.                 {
  25.                     Console.Write("B[{0},{1}] = ", i, j);
  26.                     B[i, j] = Convert.ToInt32(Console.ReadLine());
  27.                 }
  28.             }
  29.  
  30.             Console.WriteLine("\nМатрица A:");
  31.             Print(A);
  32.             Console.WriteLine("\nМатрица B:");
  33.             Print(B);
  34.             Console.WriteLine("\nМатрица C = A * B:");
  35.             int[,] C = Multiplication(A, B);
  36.             Print(C);
  37.  
  38.         }
  39.         static int[,] Multiplication(int[,] a, int[,] b)
  40.         {
  41.             if (a.GetLength(1) != b.GetLength(0)) throw new Exception("Матрицы нельзя перемножить");
  42.             int[,] r = new int[a.GetLength(0), b.GetLength(1)];
  43.             for (int i = 0; i < a.GetLength(0); i++)
  44.             {
  45.                 for (int j = 0; j < b.GetLength(1); j++)
  46.                 {
  47.                     for (int k = 0; k < b.GetLength(0); k++)
  48.                     {
  49.                         r[i,j] += a[i,k] * b[k,j];
  50.                     }
  51.                 }
  52.             }
  53.             return r;
  54.         }
  55.         static void Print(int[,] a)
  56.         {
  57.             for (int i = 0; i < a.GetLength(0); i++)
  58.             {
  59.                 for (int j = 0; j < a.GetLength(1); j++)
  60.                 {
  61.                     Console.Write("{0} ", a[i, j]);
  62.                 }
  63.                 Console.WriteLine();
  64.             }
  65.         }
  66.     }
  67. }

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


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

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

11   голосов , оценка 3.636 из 5

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

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

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