# C++ Program Multiplication of two Matrices (2D Arrays)

Hello Everyone!

In this tutorial, we will learn how to** find the Multiplication of two Matrices (2D Arrays)**, in the C++ programming language.

## Matrix Multiplication:

Matrix Multiplication is a binary operation that produces a single matrix as a result by multiplying two matrices.

**Constraint**: For Matrix Multiplication, there is one necessary condition:The number of columns in the first matrix must be equal to the number of rows in the second matrix.

The result matrix has the number of rows of the first and the number of columns of the second matrix.

In general, an element **a[i][j] of the product matrix is formed by the dot product of two arrays m1[i] and m2[j]**, i.e. the 1st element of the matrix product is found by taking dot product of the first row of the first matrix with the first column of the second matrix, the 2nd element of the matrix product is found by taking dot product of the first row of the first matrix with the second column of the second matrix, and so on.

For better understanding, refer to the well commented code given below.

**Code:**

```
#include <iostream>
using namespace std;
int main() {
cout << "\n\nWelcome to Studytonight :-)\n\n\n";
cout << " ===== Program to demonstrate Multiplication of two Matrices ===== \n\n";
//loop variable i to iterate rows and j to iterate columns.
int row1, col1, row2, col2, i, j, k;
//Declaring the 3 matrices (2D arrays) m1-first matrix, m2- second matrix and pro- stores the multiplication of the two matrices
int m1[10][10], m2[10][10], pro[10][10];
cout << "\n\nEnter the number of Rows and Columns of first matrix : ";
cin >> row1 >> col1;
cout << "\n\nEnter the number of Rows and Columns of second matrix : ";
cin >> row2 >> col2;
//Matrix multiplication property
if (col1 == row2) {
cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
for (j = 0; j < col1; j++) {
cin >> m1[i][j];
}
}
cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
for (j = 0; j < col2; j++) {
cin >> m2[i][j];
}
}
// cout << "\n\n"
//calculating the Product matrix - containing #rows and #columns of the 1st and the 2nd matrix respectively.
for (i = 0; i < row1; i++) {
for (j = 0; j < col2; j++) {
pro[i][j] = 0;
for (k = 0; k < col1; k++)
pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
}
}
cout << "\n\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
for (j = 0; j < col1; j++) {
cout << m1[i][j] << " ";
}
cout << endl;
}
cout << "\n\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
for (j = 0; j < col2; j++) {
cout << m2[i][j] << " ";
}
cout << endl;
}
cout << "\n\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
for (j = 0; j < col2; j++) {
cout << pro[i][j] << " ";
}
cout << endl;
}
} else {
cout << "\n\nMatrix multiplication can't be done as the indices do not match!";
}
cout << "\n\n";
return 0;
}
```

**Output:**

We hope that this post helped you develop better understanding of the Matrix Multiplication concept and its implementation in C++. For any query, feel free to reach out to us via the comments section down below.

**Keep Learning : )**