Tuesday 7 October 2014

Write a C Program to Print the Multiplication of Two Matrices

Multiplication of Matrix
Statement of C Program: This Program accepts two Matrices of different or same order and Find the product of these Matrices and prints the Product Matrix:

Condition: The Column of First Matrix must be Equal to the Row of the Second Matrix.





Matrix Multiplication Condition

#include<stdio.h> 
#include<conio.h>
void main()
{
int Matrix A[9][9] , MatrixB[9][9] , Matrixsproduct [9][9] ;

int n , i , j , k;                              /* 'i' used for rows and 'j' used for columns */

int Row1 , Row2 , Column1 , Column2;
clrscr();
printf(" Enter the order of Matrix A\n");
scanf("%d * %d " , &Row1 , &Column1);

printf(" Enter the order of Matrix B\n");
scanf("%d * %d " , &Row2 , &Column2);

if(Column1 == Row2)
{
printf(" Enter the elements of Matrix A\n");
for(i=0 ; i<Row1 ; i++)
{
for(j=0 ; j<Column1 ; j++)
{
scanf("%d" , &Matrix A[i][j] );
}
}

printf(" Enter the elements of Matrix B\n");
for(i=0 ; i<Row2 ; i++)
{
for(j=0 ; j<Column2 ; j++)
{
scanf("%d" , &Matrix B[i][j] );
}
}

                                                     /* Product of two Matrices */

for(i=0 ; i<Row1 ; i++)
{
for(j=0 ; j<Column2 ; j++)
{
Matrixproduct[i][j] = 0 ;
for(k=0 ; k<Row2 ; k++)
{
Matrixproduct[i][j] = Matrixproduct[i][j] + ( Matrix A[i][k] * Matrix B[k][j] );
}
}
}

printf(" Product Matrix\n");
for(i=0 ; i< Row1 ; i++)
{
for(j=0 ;j< Column2;j++)
{
printf("%d" , Matrixproduct[i][j] );
}
printf("\n");
}
}                                                                    /* End of if */

else
{
printf(" Invalid order so Multiplication not possible\n");
}                                                                 /* End of main() */

 Output:
 Enter the order of Matrix A
 2 * 2
 Enter the order of MatrixB
 2 * 2
 Enter the elements of Matrix A
 1
 2
 3
 4
 Enter the elements of Matrix B 
 5
 6
 7
 8
 Product Matrix
 19      22
 43      50

No comments:

Post a Comment