×

C Programs

C Basic & Conditional Programs

C Looping Programs

C String Programs

C Miscellaneous Programs

C program to find multiplication of two matrices

In this C program, we are going to read two matrices and find its multiplication in another matrix.

Problem statement

Given (read) two matrices with r1, c1 and r2, c2 number of rows and columns and find its multiplication.

User-defined Functions Used in the Solution

Here, we are created two user defined functions,

  1. readMatrix - this will read matrix of given row and col (number of rows and columns)
  2. printMatrix - this will print the element of given matrix, number of rows and cols are given.

C program to find multiplication of two matrices

Below is the program to multiply two matrices in C:

#include <stdio.h>

#define MAXROW 10
#define MAXCOL 10

/*User Define Function to Read Matrix*/
void readMatrix(int m[][MAXCOL], int row, int col) {
  int i, j;
  for (i = 0; i < row; i++) {
    for (j = 0; j < col; j++) {
      printf("Enter element [%d,%d] : ", i + 1, j + 1);
      scanf("%d", &m[i][j]);
    }
  }
}

/*User Define Function to Read Matrix*/
void printMatrix(int m[][MAXCOL], int row, int col) {
  int i, j;
  for (i = 0; i < row; i++) {
    for (j = 0; j < col; j++) {
      printf("%d\t", m[i][j]);
    }
    printf("\n");
  }
}

int main() {
  int a[MAXROW][MAXCOL], b[MAXROW][MAXCOL], result[MAXROW][MAXCOL];
  int i, j, r1, c1, r2, c2;
  int sum, k;

  printf("Enter number of Rows of matrix a: ");
  scanf("%d", &r1);
  printf("Enter number of Cols of matrix a: ");
  scanf("%d", &c1);

  printf("\nEnter elements of matrix a: \n");
  readMatrix(a, r1, c1);

  printf("Enter number of Rows of matrix b: ");
  scanf("%d", &r2);
  printf("Enter number of Cols of matrix b: ");
  scanf("%d", &c2);

  printf("\nEnter elements of matrix b: \n");
  readMatrix(b, r2, c2);

  if (r1 == c2) {
    /*Multiplication of two matrices*/
    for (i = 0; i < r1; i++) {
      for (j = 0; j < c1; j++) {
        sum = 0;
        for (k = 0; k < r1; k++) {
          sum = sum + (a[i][k] * b[k][j]);
        }
        result[i][j] = sum;
      }
    }

    /*print matrix*/
    printf("\nMatrix after multiplying elements (result matrix):\n");
    printMatrix(result, r1, c1);

  } else {
    printf("\nMultiplication can not be done.");
  }

  return 0;
}

Output

Enter number of Rows of matrix a: 3 
Enter number of Cols of matrix a: 3 

Enter elements of matrix a: 
Enter element [1,1] : 1 
Enter element [1,2] : 2 
Enter element [1,3] : 3 
Enter element [2,1] : 4 
Enter element [2,2] : 5 
Enter element [2,3] : 6 
Enter element [3,1] : 7 
Enter element [3,2] : 8 
Enter element [3,3] : 9 

Enter number of Rows of matrix b: 3 
Enter number of Cols of matrix b: 3 

Enter elements of matrix b: 
Enter element [1,1] : 1 
Enter element [1,2] : 1 
Enter element [1,3] : 1 
Enter element [2,1] : 2 
Enter element [2,2] : 2 
Enter element [2,3] : 2 
Enter element [3,1] : 3 
Enter element [3,2] : 3 
Enter element [3,3] : 3 

Matrix after multiplying elements (result matrix): 
14	14	14	 
32	32	32	 
50	50	50	

C Two-dimensional Arrays Programs »

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.