# Write a C Program That Uses Functions to Perform Multiplication Of Two Matrices

In this article, we will write a C program that uses functions to perform the Multiplication of two matrices.

# ALGORITHM:

Step 1: Start

Step2: for i is 0 to 2 by step 1 for j is 0 to 2 by step 1

Step 4: goto step 2

Step 5: calculate c[i][j]=c[i][j]+a[i][k]*b[k][j]

Step 6: goto step 2

Step 7: Print c[i][j]

Step 8: Stop

# Write a C Program That Uses Functions to Perform Multiplication Of Two Matrices

``````#include <stdio.h >
#include <conio.h>

int i, j, k;
void main()
{
int a, b, c, m, n, p, q;
void mul(int x, int y, int z, int m, int n, int p, int q);
void read(int x, int m, int n);
void display(int x, int m, int n);
clrscr();
printf("Enter the size of A Mtrix (Row and Col): \n");
scanf("%d%d", &m, &n);
printf("Enter the size of B Mtrix (Row and Col): \n");
scanf("%d%d", &p, &q);
if (n != p)
{
printf("correct size and try again .....\n");
}
else
{
mul(a, b, c, m, n, p, q);
printf("A Matrix is :\n");
display(a, m, n);
printf("B Matrix is :\n");

display(b, m, n);
printf("C Matrix is :\n");
display(c, m, n);
}
getch();
}
void mul(int x, int y, int z, int m, int n, int p, int q)
{
for (i = 0; i < m; i++)
for (j = 0; j < q; j++)
{
z[i][j] = 0;
for (k = 0; k < n; k++)
z[i][j] += x[i][k] *y[k][j];
}
}

void read(int x, int m, int n)
{
printf("Enter Matrix Value Row by Row\n");
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
scanf("%d", &x[i][j]);

}

void display(int x, int m, int n)
{
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
printf("%5d", x[i][j]);
printf("\n");
}
printf("\n");

}
``````

Input:

``````Enter the size of A Mtrix (Row and Col): 2 2
Enter the size of B Mtrix (Row and Col): 2 2
Enter Matrix Value Row by Row
1 0
2 6
Enter Matrix Value Row by Row
3 4
4 2
Output:
A matrix is:
1 0
2 6
B Matrix is:
3 4
4 2
C matrix is:
3 4
24 20``````