# (C programming Example for Beginners)

# C Program to Multiply Two Matrices Using Multi-dimensional Arrays

#### In this example, you will learn to multiply two matrices and display it using user-defined functions.

This program asks the user to enter the size (rows and columns) of two matrices.

To multiply two matrices, **the number of columns of the first matrix should be equal to the number of rows of the second matrix**.

The program below asks for the number of rows and columns of two matrices until the above condition is satisfied.

Then, the multiplication of two matrices is performed, and the result is displayed on the screen.

To perform this, we have created three functions:

`getMatrixElements()`

– to take matrix elements input from the user.`multiplyMatrices()`

– to multiply two matrices.`display()`

– to display the resultant matrix after multiplication.

## Multiply Matrices by Passing it to a Function

```
#include <stdio.h>
// function to get matrix elements entered by the user
void getMatrixElements(int matrix[][10], int row, int column){
printf("nEnter elements: n");
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
printf("Enter a%d%d: ", i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
}
// function to multiply two matrices
void multiplyMatrices(int first[][10],
int second[][10],
int result[][10],
int r1, int c1, int r2, int c2){
// Initializing elements of matrix mult to 0.
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
result[i][j] = 0;
}
}
// Multiplying first and second matrices and storing it in result
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
for (int k = 0; k < c1; ++k) {
result[i][j] += first[i][k] * second[k][j];
}
}
}
}
// function to display the matrix
void display(int result[][10], int row, int column){
printf("nOutput Matrix:n");
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
printf("%d ", result[i][j]);
if (j == column - 1)
printf("n");
}
}
}
int main(){
int first[10][10], second[10][10], result[10][10], r1, c1, r2, c2;
printf("Enter rows and column for the first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and column for the second matrix: ");
scanf("%d %d", &r2, &c2);
// Taking input until
// 1st matrix columns is not equal to 2nd matrix row
while (c1 != r2) {
printf("Error! Enter rows and columns again.n");
printf("Enter rows and columns for the first matrix: ");
scanf("%d%d", &r1, &c1);
printf("Enter rows and columns for the second matrix: ");
scanf("%d%d", &r2, &c2);
}
// get elements of the first matrix
getMatrixElements(first, r1, c1);
// get elements of the second matrix
getMatrixElements(second, r2, c2);
// multiply two matrices.
multiplyMatrices(first, second, result, r1, c1, r2, c2);
// display the result
display(result, r1, c2);
return 0;
}
```

**Output**

Enter rows and column for the first matrix: 2 3 Enter rows and column for the second matrix: 3 2 Enter elements: Enter a11: 2 Enter a12: -3 Enter a13: 4 Enter a21: 53 Enter a22: 3 Enter a23: 5 Enter elements: Enter a11: 3 Enter a12: 3 Enter a21: 5 Enter a22: 0 Enter a31: -3 Enter a32: 4 Output Matrix: -21 22 159 179

## C Example for Beginners: C Program to Multiply Two Matrices Using Multi-dimensional Arrays

Disclaimer: The information and code presented within this recipe/tutorial is only for educational and coaching purposes for beginners and developers. Anyone can practice and apply the recipe/tutorial presented here, but the reader is taking full responsibility for his/her actions. The author (content curator) of this recipe (code / program) has made every effort to ensure the accuracy of the information was correct at time of publication. The author (content curator) does not assume and hereby disclaims any liability to any party for any loss, damage, or disruption caused by errors or omissions, whether such errors or omissions result from accident, negligence, or any other cause.The information presented here could also be found in public knowledge domains.