This C program performs matrix multiplication. In matrix multiplication, we take two matrices of order m*n and p*q respectively to find a resultant matrix of the order m*q where n is equal to p . Time Complexity of this algorithm is O(n

^{3}).Here is the source code of the C program to perform matrix multiplication. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

`#include <stdio.h>`

int main()

`{`

int m, n, p, q, c, d, k, sum = 0;

int first[10][10], second[10][10], multiply[10][10];

printf("Enter the number of rows and columns of first matrix\n");

scanf("%d%d", &m, &n);

printf("Enter the elements of first matrix\n");

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

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

scanf("%d", &first[c][d]);

printf("Enter the number of rows and columns of second matrix\n");

scanf("%d%d", &p, &q);

if ( n != p )

printf("Matrices with entered orders can't be multiplied with each other.\n");

`else`

`{`

printf("Enter the elements of second matrix\n");

for ( c = 0 ; c < p ; c++ )

for ( d = 0 ; d < q ; d++ )

scanf("%d", &second[c][d]);

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

`{`

for ( d = 0 ; d < q ; d++ )

`{`

for ( k = 0 ; k < p ; k++ )

`{`

sum = sum + first[c][k]*second[k][d];

`}`

multiply[c][d] = sum;

sum = 0;

`}`

`}`

printf("Product of entered matrices:-\n");

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

`{`

for ( d = 0 ; d < q ; d++ )

printf("%d\t", multiply[c][d]);

printf("\n");

`}`

`}`

return 0;

`}`

$ gcc matrix_multiply.c -o matrix_multiply $ ./matrix_multiply Enter the number of rows and columns of first matrix 3 3 Enter the elements of first matrix 1 2 0 0 1 1 2 0 1 Enter the number of rows and columns of second matrix 3 3 Enter the elements of second matrix 1 1 2 2 1 1 1 2 1 Product of entered matrices:- 5 3 4 3 3 2 3 4 5

**Sanfoundry Global Education & Learning Series – 1000 C Programs.**

Here’s the list of Best Reference Books in C Programming, Data Structures and Algorithms.