The below program subtracts of two square matrices of size 4*4, we can change N for different dimension.
C++
#include <bits/stdc++.h>
using namespace std;
#define N 4
void multiply( int A[][N], int B[][N], int C[][N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
C[i][j] = A[i][j] - B[i][j];
}
int main()
{
int A[N][N] = { {1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
int B[N][N] = { {1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
int C[N][N];
int i, j;
multiply(A, B, C);
cout << "Result matrix is " << endl;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
cout << C[i][j] << " " ;
cout << endl;
}
return 0;
}
|
C
#include <stdio.h>
#define N 4
void multiply( int A[][N], int B[][N], int C[][N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
C[i][j] = A[i][j] - B[i][j];
}
int main()
{
int A[N][N] = { {1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
int B[N][N] = { {1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
int C[N][N];
int i, j;
multiply(A, B, C);
printf ( "Result matrix is
" );
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
printf ( "%d " , C[i][j]);
printf ( "
" );
}
return 0;
}
|
Java
class GFG
{
static final int N= 4 ;
static void multiply( int A[][], int B[][], int C[][])
{
int i, j;
for (i = 0 ; i < N; i++)
for (j = 0 ; j < N; j++)
C[i][j] = A[i][j] - B[i][j];
}
public static void main (String[] args)
{
int A[][] = { { 1 , 1 , 1 , 1 },
{ 2 , 2 , 2 , 2 },
{ 3 , 3 , 3 , 3 },
{ 4 , 4 , 4 , 4 }};
int B[][] = { { 1 , 1 , 1 , 1 },
{ 2 , 2 , 2 , 2 },
{ 3 , 3 , 3 , 3 },
{ 4 , 4 , 4 , 4 }};
int C[][]= new int [N][N];
int i, j;
multiply(A, B, C);
System.out.print( "Result matrix is
" );
for (i = 0 ; i < N; i++)
{
for (j = 0 ; j < N; j++)
System.out.print(C[i][j] + " " );
System.out.print( "
" );
}
}
}
|
Python3
N = 4
def multiply(A, B, C):
for i in range (N):
for j in range (N):
C[i][j] = A[i][j] - B[i][j]
A = [ [ 1 , 1 , 1 , 1 ],
[ 2 , 2 , 2 , 2 ],
[ 3 , 3 , 3 , 3 ],
[ 4 , 4 , 4 , 4 ]]
B = [ [ 1 , 1 , 1 , 1 ],
[ 2 , 2 , 2 , 2 ],
[ 3 , 3 , 3 , 3 ],
[ 4 , 4 , 4 , 4 ]]
C = A[:][:]
multiply(A, B, C)
print ( "Result matrix is" )
for i in range (N):
for j in range (N):
print (C[i][j], " " , end = '')
print ()
|
C#
using System;
class GFG
{
static int N = 4;
public static void multiply( int [][] A,
int [][] B,
int [, ] C)
{
int i, j;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
C[i, j] = A[i][j] - B[i][j];
}
}
}
public static void Main( string [] args)
{
int [][] A = new int [][]
{
new int [] {1, 1, 1, 1},
new int [] {2, 2, 2, 2},
new int [] {3, 3, 3, 3},
new int [] {4, 4, 4, 4}
};
int [][] B = new int [][]
{
new int [] {1, 1, 1, 1},
new int [] {2, 2, 2, 2},
new int [] {3, 3, 3, 3},
new int [] {4, 4, 4, 4}
};
int [, ] C = new int [N, N];
int i, j;
multiply(A, B, C);
Console.Write( "Result matrix is
" );
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
Console.Write(C[i, j] + " " );
}
Console.Write( "
" );
}
}
}
|
PHP
<?php
function multiply(& $A , & $B , & $C )
{
$N = 4;
for ( $i = 0; $i < $N ; $i ++)
for ( $j = 0; $j < $N ; $j ++)
$C [ $i ][ $j ] = $A [ $i ][ $j ] -
$B [ $i ][ $j ];
}
$N = 4;
$A = array ( array (1, 1, 1, 1),
array (2, 2, 2, 2),
array (3, 3, 3, 3),
array (4, 4, 4, 4));
$B = array ( array (1, 1, 1, 1),
array (2, 2, 2, 2),
array (3, 3, 3, 3),
array (4, 4, 4, 4));
multiply( $A , $B , $C );
echo "Result matrix is
" ;
for ( $i = 0; $i < $N ; $i ++)
{
for ( $j = 0; $j < $N ; $j ++)
{
echo $C [ $i ][ $j ];
echo " " ;
}
echo "
" ;
}
?>
|
Output:
Result matrix is
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
The program can be extended for rectangular matrices. The following post can be useful for extending this program.
How to pass a 2D array as a parameter in C?
The time complexity of the above program is O(n2).
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
leave a comment
0 Comments