Program to multiply two matrices
Program to multiply two
matrices
Given two matrices,
the task to to multiply them. Matrices can either be square or rectangular.
Multiplication
of Square Matrices:
// C program to multiply two square matrices.
#include <stdio.h>
// This function multiplies
mat1[][] and mat2[][],
// and stores the result in res[][]
void multiply(int mat1[][N], int mat2[][N], int
res[][N])
{
int i, j, k;
for (i = 0; i
< N; i++)
{
for (j =
0; j < N; j++)
{
res[i][j] = 0;
for
(k = 0; k < N; k++)
res[i][j] += mat1[i][k]*mat2[k][j];
}
}
}
int main()
{
int
mat1[N][N] = { {1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
int mat2[N][N] =
{ {1, 1, 1, 1},
{2, 2, 2, 2},
{3,
3, 3, 3},
{4, 4, 4, 4}};
int res[N][N]; // To store result
int i, j;
multiply(mat1, mat2, res);
printf("Result matrix is \n");
for (i = 0; i
< N; i++)
{
for (j =
0; j < N; j++)
printf("%d ", res[i][j]);
printf("\n");
}
return 0;
}
Output:
Result matrix is
10 10 10 10
20 20 20 20
30 30 30 30
40 40 40 40
Multiplication
of Rectangular Matrices :
// C program to multiply two rectangular matrices
#include<stdio.h>
// Multiplies two matrices mat1[][] and mat2[][]
// and prints result.
// (m1) x (m2) and (n1) x (n2) are dimensions
// of given matrices.
void multiply(int m1, int m2, int mat1[][m2],
int n1, int n2,
int mat2[][n2])
{
int x, i, j;
int res[m1][n2];
for (i = 0; i < m1;
i++) {
for (j = 0; j <
n2; j++) {
res[i][j] = 0;
for (x = 0; x
< m2; x++) {
*(*(res + i)
+ j) += *(*(mat1 + i) + x) *
*(*(mat2 + x) + j);
}
}
}
for (i = 0; i < m1;
i++) {
for (j = 0; j <
n2; j++) {
printf("%d
", *(*(res + i) + j));
printf("\n");
}
}
// Driver code
int main()
{
int mat1[][2] = { { 2, 4
}, { 3, 4 } };
int mat2[][2] = { { 1, 2
}, { 1, 3 } };
int m1 = 2, m2 = 2, n1 =
2, n2 = 2;
multiply(m1, m2, mat1,
n1, n2, mat2);
return 0;
}
Output:
6 16
7 18
Program to multiply two matrices
Reviewed by Unknown
on
August 23, 2018
Rating:
No comments:
If you have any doubt or query ,comment below: