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 Program to multiply two matrices Reviewed by Unknown on August 23, 2018 Rating: 5

No comments:

If you have any doubt or query ,comment below:

Programming copyright © 2018-19. Powered by Blogger.