Coding Lab - TechOnTechnology

Program in C# to multiply to matrices using Rectangular arrays.

using System;

namespace Lab_Ex_8
{
    class MatrixMultiplication
    {
        int[,] a;
        int[,] b;
        int[,] c;

        public void ReadMatrix()
        {
            Console.WriteLine("\n Size of Matrix 1:");
            Console.Write("\n Enter the number of rows : ");
            int m = int.Parse(Console.ReadLine());
            Console.Write("\n Enter the number of columns : ");
            int n = int.Parse(Console.ReadLine());
            a = new int[m, n];
            Console.WriteLine("\n Enter the elements : ");
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            }

            Console.WriteLine("\n Size of Matrix 2 :");
            Console.Write("\n Enter the number of rows : ");
            m = int.Parse(Console.ReadLine());
            Console.Write("\n Enter the number of columns : ");
            n = int.Parse(Console.ReadLine());
            b = new int[m, n];
            Console.WriteLine("\n Enter the elements : ");
            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                {
                    b[i, j] = int.Parse(Console.ReadLine());
                }
            }
        }

        public void PrintMatrix()
        {
            Console.WriteLine("\n Matrix 1:");
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    Console.Write("\t" + a[i, j]);
                }
                Console.WriteLine();
            }
            Console.WriteLine("\n Matrix 2:");
            for (int i = 0; i < b.GetLength(0); i++)
            {
                for (int j = 0; j < b.GetLength(1); j++)
                {
                    Console.Write("\t" + b[i, j]);
                }
                Console.WriteLine();
            }
            Console.WriteLine("\n Resultant Matrix after multiplying Matrix 1 & Matrix 2:");
            for (int i = 0; i < c.GetLength(0); i++)
            {
                for (int j = 0; j < c.GetLength(1); j++)
                {
                    Console.Write("\t" + c[i, j]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
        public void MultiplyMatrix()
        {
            if (a.GetLength(1) == b.GetLength(0))
            {
                c = new int[a.GetLength(0), b.GetLength(1)];
                for (int i = 0; i < c.GetLength(0); i++)
                {
                    for (int j = 0; j < c.GetLength(1); j++)
                    {
                        c[i, j] = 0;
                        for (int k = 0; k < a.GetLength(1); k++) // OR k
                            c[i, j] = c[i, j] + a[i, k] * b[k, j];
                    }
                }
            }
            else
            {
                Console.WriteLine("\n Number of columns in Matrix1 is not equal to Number of rows in Matrix2.");
                Console.WriteLine("\n Therefore Multiplication of Matrix1 with Matrix2 is not possible");
                Console.ReadLine();
                Environment.Exit(-1);
            }
        }
    }
    class Matrices
    {
        public static void Main()
        {
            MatrixMultiplication MM = new MatrixMultiplication();
            MM.ReadMatrix();
            MM.MultiplyMatrix();
            MM.PrintMatrix();
        }
    }
}

Name

Email *

Message *