C# Program to multiply to matrices using Rectangular arrays

using System;
namespace PostSlush
{
    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();
        }
    }
}

Output:
 

Share Your Comments
Previous C# program for Return Statement
Next Smart Contact Lens for measuring glucose levels in tears Google Announced

About author

Aamir Shaikh
Aamir Shaikh 1705 posts

<p>A Blogger, SEO Analyst and passionate Web Developer from India.<br /> Believes in hard work and continues working to achieve success.</p>

View all posts by this author →

You might also like