For working professionals
For fresh graduates
More
Talk to our experts. We are available 7 days a week, 10 AM to 7 PM
Indian Nationals
Foreign Nationals
The above statistics depend on various factors and individual results may vary. Past performance is no guarantee of future results.
The student assumes full responsibility for all expenses associated with visas, travel, & related costs. upGrad does not .
Recommended Programs
5. Array in C
13. Boolean in C
18. Operators in C
33. Comments in C
38. Constants in C
41. Data Types in C
49. Double In C
58. For Loop in C
60. Functions in C
70. Identifiers in C
81. Linked list in C
83. Macros in C
86. Nested Loop in C
97. Pseudo-Code In C
100. Recursion in C
103. Square Root in C
104. Stack in C
106. Static function in C
107. Stdio.h in C
108. Storage Classes in C
109. strcat() in C
110. Strcmp in C
111. Strcpy in C
114. String Length in C
115. String Pointer in C
116. strlen() in C
117. Structures in C
119. Switch Case in C
120. C Ternary Operator
121. Tokens in C
125. Type Casting in C
126. Types of Error in C
127. Unary Operator in C
128. Use of C Language
Matrix multiplication in C is one of the most fundamental yet powerful operations in programming, widely used in mathematics, computer graphics, engineering, and scientific computing. It allows programmers to handle large datasets, solve linear equations, perform transformations, and model real-world systems efficiently. In C programming, matrices are represented as 2D arrays, and their multiplication requires a systematic approach where rows and columns are combined using loops.
In this article, we will walk you through the complete process of matrix multiplication in C. You’ll learn the algorithm, flowchart, and different methods to multiply square and rectangular matrices. We’ll also explore sample codes, examples, and the use of functions for cleaner implementation, along with the benefits of applying matrix operations in C.
Looking to build a career in software development? Kickstart your journey with upGrad’s Software Engineering programs, designed in collaboration with top universities and industry leaders. Explore diverse learning paths and gain the skills to thrive in today’s tech-driven world!
Matrix is an ordered rectangular array of functions or numbers. A matrix with n vertical lines, known as columns, and m horizontal lines, known as rows, is a matrix of order m by n.
Learn essential object-oriented programming concepts and advance your skills with our specialized programs to excel in software development.
Multiplication of two matrices is possible only when the number of columns in the first matrix equals the number of rows in the second matrix. Hence, the order of the product of the two matrices will be equivalent to the number of rows in the first matrix and the number of columns in the second matrix.
The dot product of the first row of the first matrix and the first column of the second matrix leads to the first element of the product matrix. You can perform matrix multiplication in C using function or without it.
Step-1: Enter the value of m and n, i.e., the order of the first matrix.
Step-2: Enter the value of p and q, i.e., the order of the second matrix.
Step-3: Define a matrix of size a[m][n] and b[p][q].
Step-4: Enter the element of each matrix (row-wise) to calculate matrix multiplication in C using for loop.
Step-5: If the number of columns of the first matrix doesn’t equal the number of rows of the second matrix, then print the below message “matrix multiplication is incompatible” and exit. If not, move to the next step.
Step-6: Define a third matrix c (result matrix) of size m x q to save the multiplication result.
Step-7: Create a for loop from i=0 to i=m.
Step-8: Create an inner loop in the above loop from j=0 to j=q.
Step-9: Initialise the value of the element i & j of the new matrix to 0.
Step-10: Create an inner loop from k=0 to k=p within the above loop.
Step-11: Use add (+) and assign (=) operator to save the value of a[i][k] * b[k][j] in the result matrix c[i][j].
Step-12: Print the output of the result matrix.

Flowchart of Matrix Multiplication
In C, there are two types of matrices: square matrices and rectangular matrices. Let's begin by exploring how to multiply two square matrices in C.
A square matrix is one in which the number of rows and columns are the same. You can perform matrix multiplication in C of two square matrices only if both the matrices have the same order. The corresponding elements are multiplied and added to the products together.
An easy way to understand this is to develop the code for 2x2 matrix multiplication in C and 3x3 matrix multiplication in C.
Here’s the code for the multiplication of two square matrices:
#include<stdio.h>
int main() {
int a[5][5], b[5][5], c[5][5], n, x, y, z;
printf("Enter the value of N (N <= 5): ");
scanf("%d", & n);
printf("Enter the elements of Matrix-1: \n");
for (x = 0; x < n; x++) {
for (y = 0; y < n; y++) {
scanf("%d", & a[x][y]);
}
}
printf("Enter the elements of Matrix-2: \n");
for (x = 0; x < n; x++) {
for (y = 0; y < n; y++) {
scanf("%d", & b[x][y]);
}
}
for (x = 0; x < n; x++) {
for (y = 0; y < n; y++) {
c[x][y] = 0;
for (z = 0; z < n; z++) {
c[x][y] += a[x][z] * b[z][y];
}
}
}
printf("The product of the two matrices is: \n");
for (x = 0; x < n; x++) {
for (y = 0; y < n; y++) {
printf("%d\t", c[x][y]);
}
printf("\n");
}
return 0;
}
Output:
Enter the value of N (N <= 5): 2
Enter the elements of Matrix-1:
1 3
3 4
Enter the elements of Matrix-2:
4 6
1 2
The product of the two matrices is:
7 12
16 26
In the above code, the first step defines the input, output, and resultant matrix sizes. The user is prompted to enter the elements of matrix-1 and matrix-2. Subsequently, the program runs the for loop to multiply and add the elements of the matrices. The loop runs until ‘n’ (the size of a square matrix).
In a rectangular matrix, the number of rows and the number of columns are unequal. Unlike the square matrix, the rectangular matrix allows matrix multiplication in C with different dimensions. The number of columns in the first matrix must equal the number of rows in the second matrix. Otherwise, you will get an error
Here’s the code for the multiplication of two rectangular matrices:
#include <stdio.h>
void multiplyMatrices(int mat1[][3], int row1, int col1, int mat2[][2], int row2, int col2, int result[][2]) {
int x, y, z;
// Performs matrix multiplication
for (x= 0; x < row1; x++) {
for (y = 0; y < col2; y++) {
result[x][y] = 0;
for (z = 0; z < col1; z++) {
result[x][y] += mat1[x][z] * mat2[z][y];
}
}
}
}
void showMatrix(int mat[][2], int row, int col) {
int x, y;
printf("Resultant Matrix:\n");
for (x = 0; x < row; x++) {
for (y = 0; y < col; y++) {
printf("%d ", mat[x][y]);
}
printf("\n");
}
}
int main() {
int row1, col1, row2, col2;
printf("Enter the number of rows and columns for Matrix 1: ");
scanf("%d %d", &row1, &col1);
printf("Enter the number of rows and columns for Matrix 2: ");
scanf("%d %d", &row2, &col2);
if (col1 != row2) {
printf("Matrix multiplication is not possible!\n");
return 0;
}
int mat1[row1][col1];
int mat2[row2][col2];
int result[row1][col2];
int x, y;
printf("Enter the elements of Matrix 1:\n");
for (x = 0; x < row1; x++) {
for (y = 0; y < col1; y++) {
scanf("%d", &mat1[x][y]);
}
}
printf("Enter the elements of Matrix 2:\n");
for (x = 0; x < row2; x++) {
for (y = 0; y < col2; y++) {
scanf("%d", &mat2[x][y]);
}
}
multiplyMatrices(mat1, row1, col1, mat2, row2, col2, result);
showMatrix(result, row1, col2);
return 0;
}
In the above code of rectangular matrix multiplication in C, the first step initialises the rows and columns of the input matrices and the result matrix. The user then inputs the elements of each matrix. The program runs the for loop to multiply and add the elements of each of the input matrices. If the number of columns in the first matrix is not equal to the number of rows in the second matrix, it displays a message that matrix multiplication is not possible.
Output:
Enter the number of rows and columns for Matrix 1: 2 3
Enter the number of rows and columns for Matrix 2: 3 4
Enter the elements of Matrix 1:
1 2 3
2 3 4
Enter the elements of Matrix 2:
1 2 3 4
2 3 4 5
1 5 4 2
Resultant Matrix:
13 19 19 28
19 28 28 37
Let’s try running the above program in the case when the number of columns in the first matrix doesn’t equal the number of rows in the second matrix. Here’s the output.
Output:
Enter the order of first matrix
1 4
Enter the order of second matrix
1 4
Matrix multiplication is not possible
The code for matrix multiplication in C without function may be long. You can pass a function to simplify the code for matrix multiplication. The method of passing a function involves allowing the user to input the matrix using the input() function. The display() function is used to show the matrix’s result. You can name a function multiply() and use it to calculate the multiplication of two matrices.
Matrix multiplication in C is an essential concept for programmers and learners. It shows how mathematical logic can be applied directly in coding. By mastering the algorithm, flowchart, and implementation, you develop strong problem-solving and logical thinking skills.
Practicing with both square and rectangular matrices helps you understand nested loops, functions, and efficient memory use. These basics prepare you for advanced fields like AI, computer graphics, and engineering.
Matrix multiplication in C also builds confidence in handling real-world problems that involve large datasets. With consistent practice, you strengthen your programming foundation and gain skills that are valuable for future career growth.
Learning core programming concepts like matrix multiplication in C is just the beginning of your journey. To move beyond the basics, you need structured guidance, real-world projects, and mentorship. That’s where upGrad comes in.
With industry-relevant programs and expert instructors, upGrad helps you strengthen your coding foundation and apply mathematical logic to solve complex problems. You also get access to free beginner-friendly courses, including Python, to broaden your programming skills alongside C.
Speak to an upGrad counselor today and discover how you can progress from mastering concepts like matrix multiplication in C to building a rewarding career in technology.
Generally, the matrix multiplication is not commutative. The reason is when we multiply the two matrices, the elements of the first row of matrix-1 are multiplied by the elements of the first column of matrix-2. So, altering the order will alter the corresponding elements of matrix-1 and matrix-2.
The matrix multiplication in C is possible if the number of columns in the first matrix and the number of rows in the second matrix are equal.
-9cd0a42cab014b9e8d6d4c4ba3f27ab1.webp&w=3840&q=75)
Take a Free C Programming Quiz
Answer quick questions and assess your C programming knowledge
FREE COURSES
Start Learning For Free

Author|907 articles published