Matrix Multiplication 2 D (dimensional) Array Example Example Program

Matrix definition:

Matrix addition is the operation of adding two matrices by adding the corresponding entries together.

Two Dimensional (2 D) array in C

The two dimensional array in C, represented in the form of rows and columns, also suitable with matrix. It is also known as Multidimensional array

Multidimensional arrays

According to Wikipedia, For multi dimensional array, the element with indices i,j would have address B + c · i + d · j, where the coefficients c and d are the row and column address increments, respectively.

More generally, in a k-dimensional array, the address of an element with indices i1, i2, ..., ik is

B + c1 · i1 + c2 · i2 + ... + ck · ik.

Syntax

data_type variable_name[size_row][size_col];  

Syntax Example

int a[2][3];

Matrix Subtraction 2 D (dimensional) or Multidimensional Array Example Program In C

/*##Matrix Multiplication, 2 D (dimensional) Multiplication Array Example , Multidimensional Array Example*/
/*##Calculation Programs, Datatype Programs, Basic Programs*/

#include <stdio.h>

int main()
{
  int rowCountOne, columnCountOne, rowCountTwo, columnCountTwo, i, j, k, sum = 0;
  int firstMatrix[10][10], secondMatrix[10][10], resultMatrix[10][10];

  printf("Number of rows in first matrix : ");
  scanf("%d", &rowCountOne);

  printf("Number of columns in first matrix : ");
  scanf("%d", &columnCountOne);

  printf("Elements of first matrix : \n");

  for (i = 0; i < rowCountOne; i++)
    for (j = 0; j < columnCountOne; j++)
      scanf("%d", &firstMatrix[i][j]);

  printf("Number of rows of second matrix : ");
  scanf("%d", &rowCountTwo);

  printf("Number of columns of second matrix : ");
  scanf("%d", &columnCountTwo);

  if (columnCountOne != rowCountTwo)
    printf("Matrices with entered orders cannot be multiplied.\n");
  else
  {
    printf("Elements of second matrix : \n");

    for (i = 0; i < rowCountTwo; i++)
      for (j = 0; j < columnCountTwo; j++)
        scanf("%d", &secondMatrix[i][j]);

    for (i = 0; i < rowCountOne; i++) {
      for (j = 0; j < columnCountTwo; j++) {
        for (k = 0; k < rowCountTwo; k++) {
          sum = sum + firstMatrix[i][k]*second[k][j];
        }

        resultMatrix[i][j] = sum;
        sum = 0;
      }
    }

    printf("After Multiplication, the result is : \n");

    for (i = 0; i < rowCountOne; i++) {
      for (j = 0; j < columnCountTwo; j++)
        printf("%d\t", resultMatrix[i][j]);

      printf("\n");
    }
  }

  return 0;
}

Sample Output:

Number of rows in first matrix : 3
Number of columns in first matrix : 3
Elements of first matrix :
3
3
3
3
3
3
3
3
3
Number of rows of second matrix : 3
Number of columns of second matrix : 3
Enter the elements of second matrix :
3
3
3
3
3
3
3
3
3
After Multiplication, the result is :
27      27      27
27      27      27
27      27      27