Interviews Questions, Algorithms, Aptitude, C Interview Program, C Theory Question, Aptitude Tricks, Test Series,

Wednesday 27 March 2019

MatrixMultiplication Algorithm


ALGORITHM MatrixMultiplication(A[0..n 10..n 1]

B[0..n 10..n 1])

//Multiplies two square matrices of order by the definition-based 

algorithm

//Input: Two × matrices and B

//Output: Matrix AB

for ← to do

for← to do

C[i, j← 0.0

for ← to do

C[i, j← C[i, jA[i, k B[k, j]

return C

C program:


#include <stdio.h>

int main()

{

  int m, n, p, q, c, d, k, sum = 0;

  int first[10][10], second[10][10], multiply[10][10];

  printf("Enter number of rows and columns of first matrix\n");  

scanf("%d%d", &m, &n);

  printf("Enter elements of first matrix\n");


  for (c = 0; c < m; c++)

    for (d = 0; d < n; d++)

      scanf("%d", &first[c][d]);

  printf("Enter number of rows and columns of second matrix\n");

  scanf("%d%d", &p, &q);

  if (n != p)

    printf("The matrices can't be multiplied with each other.\n");

  else

  {

    printf("Enter elements of second matrix\n");

    for (c = 0; c < p; c++)

      for (d = 0; d < q; d++)

        scanf("%d", &second[c][d]);

    for (c = 0; c < m; c++) {

      for (d = 0; d < q; d++) {

            multiply[c][d]=0;

        for (k = 0; k < p; k++) {

          multiply[c][d] = multiply[c][d]+ first[c][k]*second[k][d];

        }

    }

    }

    printf("Product of the matrices:\n");

    for (c = 0; c < m; c++) {

      for (d = 0; d < q; d++)

        printf("%d\t", multiply[c][d]);

      printf("\n");

    }

  }

  return 0;

}


Output:


Enter number of rows and columns of first matrix

2

2

Enter elements of first matrix

1

2

3

4

Enter number of rows and columns of second matrix

2

2

Enter elements of second matrix

1

2

3

4

Product of the matrices:

7       10

15      22

0 comments:

Post a Comment