# MATRIX MULTIPLICATION

12 July 2022

MATRIX MULTIPLICATION

If you are from 2023 batch student, Join our Telegram group for placement preparation and coming placement drive updates : https://t.me/talentbattle2023

Sample input 1:

3 3

1 2 3

4 5 6

7 8 9

3 2

1 0

0 1

0 0

Sample output 1:

1 2

4 5

7 8

Sample input 2:

3 3

1 2 3

4 5 6

7 8 9

2 3

1 0 1

1 1 0

Sample Output:

Multiplication not possible

C Program

#include <stdio.h>

int main()

{

int r1,c1,r2,c2;

scanf("%d%d",&r1,&c1);

int arr1[r1][c1];

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c1 ; j++)

{

scanf("%d",&arr1[i][j]) ;

}

}

scanf("%d%d",&r2,&c2);

int arr2[r2][c2];

for(int i = 0 ; i<r2 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

scanf("%d",&arr2[i][j]) ;

}

}

// Matrix multiplication is possible only if Row of 1st matrix equals to colum of 2ed matrix

// Product sum matrix will be of diamention Row1 x Col2

if(c1 == r2)

{

int arr3[r1][c2];

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

arr3[i][j] = 0;

for(int k = 0 ; k<c1 ; k++)

{

arr3[i][j] = arr3[i][j] + (arr1[i][k] * arr2[k][j]);

}

}

}

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

printf("%d ",arr3[i][j]);

}

printf("\n");

}

}

else

{

printf("Multiplication not possible");

}

return 0;

}

C++ program

#include <bits/stdc++.h>

using namespace std;

int main()

{

int r1,c1,r2,c2;

cin>>r1>>c1;

int arr1[r1][c1];

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c1 ; j++)

{

cin>>arr1[i][j];

}

}

cin>>r2>>c2;

int arr2[r2][c2];

for(int i = 0 ; i<r2 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

cin>>arr2[i][j];

}

}

// Matrix multiplication is possible only if Row of 1st matrix equals to colum of 2ed matrix

// Product sum matrix will be of diamention Row1 x Col2

if(c1 == r2)

{

int arr3[r1][c2];

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

arr3[i][j] = 0;

for(int k = 0 ; k<c1 ; k++)

{

arr3[i][j] = arr3[i][j] + (arr1[i][k] * arr2[k][j]);

}

}

}

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

cout<<arr3[i][j]<<" ";

}

cout<<"\n";

}

}

else

{

cout<<"Multiplication not possible";

}

return 0;

}

JAVA Program

import java.util.*;

import java.lang.*;

import java.io.*;

class Main

{

public static void Multiplication(int arr1[][],int arr2[][],int r1,int c1,int r2,int c2)

{

// Matrix multiplication is possible only if Row of 1st matrix equals to colum of 2ed matrix

// Product sum matrix will be of diamention Row1 x Col2

if(c1 == r2)

{

int arr3[][] = new int[r1][c2];

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

arr3[i][j] = 0;

for(int k = 0 ; k<c1 ; k++)

{

arr3[i][j] = arr3[i][j] + (arr1[i][k] * arr2[k][j]);

}

}

}

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

System.out.print(arr3[i][j] + " ");

}

System.out.println();

}

}

else

{

System.out.print("Multiplication not possible");

}

}

public static void main (String[] args) throws java.lang.Exception

{

Scanner sc=new Scanner(System.in);

int r1 = sc.nextInt();

int c1 = sc.nextInt();

int arr1[][] = new int[r1][c1];

for(int i = 0 ; i<r1 ; i++)

{

for(int j = 0 ; j<c1 ; j++)

{

arr1[i][j] = sc.nextInt();

}

}

int r2 = sc.nextInt();

int c2 = sc.nextInt();

int arr2[][] = new int[r2][c2];

for(int i = 0 ; i<r2 ; i++)

{

for(int j = 0 ; j<c2 ; j++)

{

arr2[i][j] = sc.nextInt();

}

}

Multiplication(arr1,arr2,r1,c1,r2,c2);

}

}

PYTHON Program

a1=[[1, 2, 3],

[4, 5, 6]]

a2=[[1, 1],

[2, 2],

[3, 3]]

resultant = []

for i in range(len(a1)):

row = []

for j in range(len(a2[0])):

row.append(0)

resultant.append(row)

for i in range(len(a1)):

for j in range(len(a2[0])):

for k in range(len(a2)) :

resultant[i][j] += a1[i][k] * a2[k][j]

for row in resultant:

print(row)

If you are from 2023 batch student, Join our Telegram group for placement preparation and coming placement drive updates : https://t.me/talentbattle2023