Matrix multiplication in c language: c program to multiply matrices (two
dimensional array), this program multiplies two matrices which will be
entered by the user. Firstly user will enter the order of a matrix. If
the entered orders of two matrix is such that they can't be multiplied
then an error message is displayed on the screen. You have already
studied the logic to multiply them in Mathematics.
Program:
#include <stdio.h>
int main()
{
int m, n, p, q, i, j, k, sum = 0;
int first[10][10], second[10][10], multiply[10][10]; // There are three array
printf("Enter the number of rows and columns of first matrix\n");
scanf("%d%d", &m, &n);
printf("Enter the elements of first matrix\n");
// take input for first matrix
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &first[i][j]);
}
}
printf("Enter the number of rows and columns of second matrix\n");
scanf("%d%d", &p, &q);
if (n != p)
printf("Matrices with entered orders can't be multiplied with each other.\n");
else
{
printf("Enter the elements of second matrix\n");
// take input for second matrix
for (i = 0; i < p; i++)
{
for (j = 0; j < q; j++)
{
scanf("%d", &second[i][j]);
}
}
// calculation
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
{
for (k = 0; k < p; k++)
{
sum = sum + first[i][k] * second[k][j];
}
multiply[i][j] = sum;
sum = 0;
}
}
printf("Product of entered matrices:-\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
{
printf("%d\t", multiply[i][j]);
}
printf("\n");
}
}
return 0;
}
int main()
{
int m, n, p, q, i, j, k, sum = 0;
int first[10][10], second[10][10], multiply[10][10]; // There are three array
printf("Enter the number of rows and columns of first matrix\n");
scanf("%d%d", &m, &n);
printf("Enter the elements of first matrix\n");
// take input for first matrix
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &first[i][j]);
}
}
printf("Enter the number of rows and columns of second matrix\n");
scanf("%d%d", &p, &q);
if (n != p)
printf("Matrices with entered orders can't be multiplied with each other.\n");
else
{
printf("Enter the elements of second matrix\n");
// take input for second matrix
for (i = 0; i < p; i++)
{
for (j = 0; j < q; j++)
{
scanf("%d", &second[i][j]);
}
}
// calculation
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
{
for (k = 0; k < p; k++)
{
sum = sum + first[i][k] * second[k][j];
}
multiply[i][j] = sum;
sum = 0;
}
}
printf("Product of entered matrices:-\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
{
printf("%d\t", multiply[i][j]);
}
printf("\n");
}
}
return 0;
}