# Program to Calculate 3X3 Matrix Multiplication [C, C++, Python & Java]

Posted in

Vinay Khatri
Last updated on September 10, 2024

In this tutorial, we will write a program to calculate 3x3 matrix multiplication in C, C++, Python, and Java. Each program will ask the user to enter the elements for two 3x3 matrices. Each matrix will have 9 elements. The program then multiplies the two matrices and prints the resultant matrix.

To write the program, you must know what a matrix is, how to multiply two matrices, the programming language syntax, and the for loop.

So, let us begin without any delay.

## What is a Matrix?

A matrix is a rectangular array where elements are arranged in rows and columns. The horizontal arrangement of elements is called a row, and the vertical arrangement is called a column.

If a matrix is represented as [A] m*n, it implies that the matrix has m number of rows and n number of columns. Each number of a matrix is referred to as an element. It is represented as a mn.

Square Matrix: A matrix is known as a square matrix when its number of rows equals the number of columns.

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

For this tutorial, we have taken two 3X3 matrices, i.e., square matrices.

## C Program to Calculate 3x3 Matrix Multiplication

``````#include<stdio.h>
int main()
{
int arr1[3][3],arr2[3][3],arr3[3][3];
int i, j, k;
printf("Enter the Elements of Array 1: \n");
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
scanf("%d", &arr1[i][j]);
}
printf("Enter the Elements of Array2: \n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d", &arr2[i][j]);
}
printf("Output Matrix:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
arr3[i][j]=0;
for(k=0;k<3;k++)
arr3[i][j]=arr3[i][j]+(arr1[i][k]*arr2[k][j]);
printf("%d ", arr3[i][j]);
}
printf("\n");
}
return 0;
}``````

Output:

``````Enter the Elements of Array 1:
3 4 5 6 1 2 3 7 9
Enter the Elements of Array2:
5 4 3 6 7 8 2 9 1
Output Matrix:
49 85 46
40 49 28
75 142 74 ``````

## C++ Program to Calculate 3x3 Matrix Multiplication

``````#include<iostream>
using namespace std;
int main()
{
int arr1[3][3],arr2[3][3],arr3[3][3];
cout<<"Enter the Elements of Array 1: "<<endl;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cin>>arr1[i][j];
}
cout<<"Enter the Elements of Array2:"<<endl;
for(i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cin>>arr2[i][j];
}
cout<<"Output Matrix:\n";
for(i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
arr3[i][j]=0;
for(int k=0;k<3;k++)
arr3[i][j]=arr3[i][j]+(arr1[i][k]*arr2[k][j]);
cout<<arr3[i][j]<<" ";
}
cout<<endl;
}
return 0;
}``````

Output:

``````Enter the Elements of Array 1:
3 4 5 4 2 1 3 8 9
Enter the Elements of Array2:
4 3 2 6 4 1 8 0 9
Output Matrix:
76 25 55
36 20 19
132 41 95 ``````

## Python Program to Calculate 3x3 Matrix Multiplication

``````arr1=[[0,0,0],[0,0,0],[0,0,0]]
arr2=[[0,0,0],[0,0,0],[0,0,0]]
arr3= [[0,0,0],[0,0,0],[0,0,0]]

print("Enter the Elements of Array 1:")
for i in range(0,3):
for j in range(0,3):
element= int(input())
arr1[i][j]=element

print("Enter the Elements of Array 2:")
for i in range(3):
for j in range(3):
element2= int(input())
arr2[i][j]=element2

for i in range(3):
for j in range(3):
for k in range(3):
arr3[i][j]+=arr1[i][k]*arr2[k][j]

print(arr3[0],'\n',arr3[1],'\n',arr3[2])``````

Output:

``````Enter the Elements of Array 1:

3
4
5
2
54
6
23
45
12

Enter the Elements of Array 2:

23
34
54
5
76
65
34
76
85
[259, 786, 847]
[520, 4628, 4128]
[1162, 5114, 5187]``````

## Java Program to Calculate 3x3 Matrix Multiplication

``````import java.util.Scanner;

public class Main {
public static void main(String[] args) {
int[][] a = new int[3][3];
int[][] b = new int[3][3];
int[][] c = new int[3][3];
int i, j, k;
Scanner sc = new Scanner(System.in);

System.out.println("Enter the Elements of Array 1: \n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
a[i][j] = sc.nextInt();
}
}

System.out.println("Enter the Elements of Array2: \n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
b[i][j] = sc.nextInt();
}
}

System.out.println("Output Matrix:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] = 0;
for (k = 0; k < 3; k++) {
c[i][j] = c[i][j] + (a[i][k] * b[k][j]);
}
System.out.print(" " + c[i][j]);
}
System.out.println();
}
}
}``````

Output:

``````Enter the Elements of Array 1:

3 4 5 2 1 4 5 6 7
Enter the Elements of Array2:

3 7 6 2 9 8 1 3 4
Output Matrix:

22 72 70
12 35 36
34 110 106``````

## Conclusion

Matrix multiplication is a common endeavor in scientific and mathematical programming. Hence, every programmer must be aware of it. In this tutorial, we have provided code capable of multiplying only a 3x3 matrix. You can design the program for other square matrices to learn the concept better, like 4x4 and 5x5 matrices.

Moreover, you can create a program to multiply square matrices of any size. However, doing so will require much knowledge and effort. Let us know if you can do so.