Program for multiplication of two matrices

This program computes multiplication of two matrices . In this we ask user to enter order or size  of matrix A then entered elements for matrix A, same procedure goes for  matrix B. But the multiplication does not yield the same process as in case of addition or subtraction of two matrices.

Let us take a general scenario. We have Matrix A of size 3*4 and a Matrix B of size 3* 4 . It seems from the appearance that we can conclude the resultant matrix.  But you are wrong here , we can not multiply these two matrices as the no. of columns of Matrix A is 4 and rows of matrix B is 3. It does not match, so it is impossible to perform multiplication.

 Also Read:  Program for subtraction of two matrices

Take another scenario, we have  Matrix A of order 1 X 4 and Matrix B of order 4 X 4 then Multiplication can be performed. Resultant matrix would be of order  1 X 4 ( i.e no. of rows of matrix A * no. of columns of matrix B )

#include<iostream.h>

#include<conio.h>

int main()

{

    clrscr();

    int a[10][10], b[10][10],c[10][10];

    int x,y,i,j,m,n;

    cout<<“\nEnter the number of rows and columns for Matrix A:::\n\n”;

    cin>>x>>y;

    // x denotes number rows in matrix A

    // y denotes number columns in matrix A

    cout<<“\n\nEnter elements for Matrix A :::\n\n”;

    for(i=0;i<x;i++)

    {

        for(j=0;j<y;j++)

        {

            cin>>a[i][j];

        }

        cout<<“\n”;

    }

    cout<<“\n\nMatrix A :\n\n”;

    for(i=0;i<x;i++)

    {

        for(j=0;j<y;j++)

        {

            cout<<“\t”<<a[i][j];

        }

        cout<<“\n\n”;

    }

    cout<<“\n———————————————————–\n”;

    cout<<“\nEnter the number of rows and columns for Matrix B:::\n\n”;

    cin>>m>>n;

    // m denotes number rows in matrix B

    // n denotes number columns in matrix B

    cout<<“\n\nEnter elements for Matrix B :::\n\n”;

    for(i=0;i<m;i++)

    {

        for(j=0;j<n;j++)

        {

            cin>>b[i][j];

        }

        cout<<“\n”;

    }

    cout<<“\n\nMatrix B :\n\n”;

    for(i=0;i<m;i++)

    {

        for(j=0;j<n;j++)

        {

            cout<<“\t”<<b[i][j];

        }

        cout<<“\n\n”;

    }

    if(y==m)

    {

        for(i=0;i<x;i++)

        {

            for(j=0;j<n;j++)

            {

                c[i][j]=0;

                for(int k=0;k<m;k++)

                {

                    c[i][j]=c[i][j]+a[i][k]*b[k][j];

                }

            }

        }

        cout<<“\n———————————————————–\n”;

        cout<<“\n\nMultiplication of Matrix A and Matrix B :\n\n”;

        for(i=0;i<x;i++)

        {

            for(j=0;j<n;j++)

            {

                cout<<“\t”<<c[i][j];

            }

            cout<<“\n\n”;

        }

    }

    else

    {

        cout<<“\n\nMultiplication is not possible”;

    }

    getch();

    return 0;

}

Also Read: Program for addition of two matrices