Program for addition of two matrices
The below program adds two square matrices of size 4*4, we can change N for different dimensions.
Implementation:
C++
// C++ program for addition // of two matrices #include <bits/stdc++.h> using namespace std; #define N 4 // This function adds A[][] and B[][], and stores // the result in C[][] void add( 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]; } // Driver code 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]; // To store result int i, j; add(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; } // This code is contributed by rathbhupendra |
C
#include <stdio.h> #define N 4 // This function adds A[][] and B[][], and stores // the result in C[][] void add( 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]; // To store result int i, j; add(A, B, C); printf ( "Result matrix is \n" ); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) printf ( "%d " , C[i][j]); printf ( "\n" ); } return 0; } |
Java
// Java program for addition // of two matrices class GFG { static final int N = 4 ; // This function adds A[][] and B[][], and stores // the result in C[][] static void add( 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]; } // Driver code 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 }}; // To store result int C[][] = new int [N][N]; int i, j; add(A, B, C); System.out.print( "Result matrix is \n" ); for (i = 0 ; i < N; i++) { for (j = 0 ; j < N; j++) System.out.print(C[i][j] + " " ); System.out.print( "\n" ); } } } // This code is contributed by Anant Agarwal. |
Python3
# Python3 program for addition # of two matrices N = 4 # This function adds A[][] # and B[][], and stores # the result in C[][] def add(A,B,C): for i in range (N): for j in range (N): C[i][j] = A[i][j] + B[i][j] # driver code 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[:][:] # To store result add(A, B, C) print ( "Result matrix is" ) for i in range (N): for j in range (N): print (C[i][j], " " , end = '') print () # This code is contributed # by Anant Agarwal. |
C#
// C# program for addition // of two matrices using System; class GFG { static int N = 4; // This function adds A[][] and B[][], and stores // the result in C[][] static void add( 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]; } // Driver code public static void Main () { 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}}; // To store result int [,]C = new int [N,N]; int i, j; add(A, B, C); Console.WriteLine( "Result matrix is " ); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) Console.Write(C[i,j] + " " ); Console.WriteLine(); } } } // This code is contributed by vt_m. |
PHP
<?php // This function adds A[][] and // B[][], and stores the result in C[][] function add(& $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 ]; } // Driver code $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)); $N = 4; add( $A , $B , $C ); echo "Result matrix is \n" ; for ( $i = 0; $i < $N ; $i ++) { for ( $j = 0; $j < $N ; $j ++) { echo $C [ $i ][ $j ]; echo " " ; } echo "\n" ; } // This code is contributed // by Shivi_Aggarwal ?> |
Javascript
<script> // Javascript program for addition // of two matrices let N = 4; // This function adds A[][] and B[][], and stores // the result in C[][] function add(A, B, C) { let i, j; for (i = 0; i < N; i++) for (j = 0; j < N; j++) C[i][j] = A[i][j] + B[i][j]; } // Driver code let A = [ [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]; let B = [ [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]; // To store result let C = new Array(N); for (let k = 0; k < N; k++) C[k] = new Array(N); let i, j; add(A, B, C); document.write( "Result matrix is <br>" ); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) document.write(C[i][j] + " " ); document.write( "<br>" ); } </script> |
Output:
Result matrix is 2 2 2 2 4 4 4 4 6 6 6 6 8 8 8 8
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?
Time complexity: O(n2).
Auxiliary space: O(n2). since n2 extra space has been taken for storing results