GeeksforGeeks App
Open App
Browser
Continue

# Sum of middle row and column in Matrix

Given an integer matrix of odd dimensions (3 * 3, 5 * 5). then the task is to find the sum of the middle row & column elements.

Examples:

```Input :  2 5 7
3 7 2
5 6 9
Output : Sum of middle row = 12
Sum of middle column = 18

Input :  1 3 5 6 7
3 5 3 2 1
1 2 3 4 5
7 9 2 1 6
9 1 5 3 2
Output : Sum of middle row = 15
Sum of middle column = 18```

Implementation:

## CPP

 `// C++ program to find sum of``// middle row and column in matrix``#include ``using` `namespace` `std;``const` `int` `MAX = 100;` `void` `middlesum(``int` `mat[][MAX], ``int` `n)``{` `    ``int`  `row_sum = 0, col_sum = 0;``    ` `    ``//loop for sum of row``    ``for` `(``int` `i = 0; i < n; i++)``        ``row_sum += mat[n / 2][i];``    ` `    ``cout << ``"Sum of middle row = "``                    ``<< row_sum<

## Java

 `// java  program to find sum of``// middle row and column in matrix` `import` `java.io.*;` `class` `GFG {``    `  `static`  `int` `MAX = ``100``;` ` ``static` `void` `middlesum(``int` `mat[][], ``int` `n)``{` `    ``int` `row_sum = ``0``, col_sum = ``0``;``    ` `    ``// loop for sum of row``    ``for` `(``int` `i = ``0``; i < n; i++)``        ``row_sum += mat[n / ``2``][i];``    ` `    ``System.out.println ( ``"Sum of middle row = "``                  ``+ row_sum);``    ` `    ``// loop for sum of column``    ``for` `(``int` `i = ``0``; i < n; i++)``        ``col_sum += mat[i][n / ``2``];``    ` `    ``System.out.println ( ``"Sum of middle column = "``                 ``+ col_sum);``}` `// Driver function``    ``public` `static` `void` `main (String[] args) {``        ``int` `mat[][] = {{``2``, ``5``, ``7``},``                    ``{``3``, ``7``, ``2``},``                    ``{``5``, ``6``, ``9``}};``    ` `        ``middlesum(mat, ``3``);``    ` `    ``}``}` `// This code is contributed by vt_m.`

## Python3

 `# Python program to find sum of``# middle row and column in matrix` ` ` `def` `middlesum(mat,n):`` ` `    ``row_sum ``=` `0``    ``col_sum ``=` `0``     ` `    ``# loop for sum of row``    ``for` `i ``in` `range``(n):``        ``row_sum ``+``=` `mat[n ``/``/` `2``][i]``     ` `    ``print``(``"Sum of middle row = "``,``                     ``row_sum)``     ` `    ``# loop for sum of column``    ``for` `i ``in` `range``(n):``        ``col_sum ``+``=` `mat[i][n ``/``/` `2``]``     ` `    ``print``(``"Sum of middle column = "``,``                            ``col_sum)` `# Driver code``mat``=` `[[``2``, ``5``, ``7``],``     ``[``3``, ``7``, ``2``],``     ``[``5``, ``6``, ``9``]]``     ` `middlesum(mat, ``3``)` `# This code is contributed``# by Anant Agarwal.`

## C#

 `// C# program to find sum of``// middle row and column in matrix``using` `System;` `class` `GFG {``    `  `    ``//static int MAX = 100;``    ` `    ``static` `void` `middlesum(``int` `[,]mat, ``int` `n)``    ``{``    ` `        ``int` `row_sum = 0, col_sum = 0;``        ` `        ``// loop for sum of row``        ``for` `(``int` `i = 0; i < n; i++)``            ``row_sum += mat[n / 2, i];``        ` `        ``Console.WriteLine ( ``"Sum of middle row = "``                    ``+ row_sum);``        ` `        ``// loop for sum of column``        ``for` `(``int` `i = 0; i < n; i++)``            ``col_sum += mat[i, n / 2];``        ` `        ``Console.WriteLine ( ``"Sum of middle column = "``                            ``+ col_sum);``    ``}` `    ``// Driver function``    ``public` `static` `void` `Main () {``        ``int` `[,]mat = {{2, 5, 7},``                    ``{3, 7, 2},``                    ``{5, 6, 9}};``    ` `        ``middlesum(mat, 3);``    ` `    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output

```Sum of middle row = 12
Sum of middle column = 18```

Time Complexity : O(n)
Auxiliary Space: O(1) using constant space to initialize row_sum and col_sum variables, since no extra space has been taken.

Using Stl:

Here we use the accumulate function to do it.

For JavaScript:

Here we use the reduce function to do it.

## C++

 `#include ``#include``using` `namespace` `std;` `int` `main() {``    ``vector>v{{2, 5, 7},``                         ``{3, 7, 2},``                         ``{5, 6, 9}};``    ``int` `n=v.size();``    ``cout<<``"The sum of all the element in middle row : "``<

## Java

 `import` `java.util.Arrays;` `public` `class` `Main {``    ``public` `static` `void` `main(String[] args) {``        ``int``[][] v = {{``2``, ``5``, ``7``},``                     ``{``3``, ``7``, ``2``},``                     ``{``5``, ``6``, ``9``}};``        ``int` `n = v.length;``        ``System.out.println(``"The sum of all the element in middle row : "``);``        ``System.out.println(Arrays.stream(v[n/``2``]).sum());``        ``for``(``int` `i = ``0``; i < n; i++)``            ``for``(``int` `j = i + ``1``; j < n; j++) {``                ``int` `temp = v[i][j];``                ``v[i][j] = v[j][i];``                ``v[j][i] = temp;``            ``}``       ``System.out.println(``"The sum of all the element in middle column : "``);``       ``System.out.println(Arrays.stream(v[n/``2``]).sum());``    ``}``}`

## Python3

 `# Python code to implement the above approach``v ``=` `[[``2``, ``5``, ``7``],``     ``[``3``, ``7``, ``2``],``     ``[``5``, ``6``, ``9``]]``n ``=` `len``(v)` `print``(``"The sum of all the element in middle row : "``)``print``(``sum``(v[n``/``/``2``]))` `for` `i ``in` `range``(n):``    ``for` `j ``in` `range``(i``+``1``,n):``        ``v[i][j],v[j][i] ``=` `v[j][i],v[i][j]``        ` `print``(``"The sum of all the element in middle column : "``)``print``(``sum``(v[n``/``/``2``]))`

## Javascript

 `// JavaScript code to implement the above approach``var` `v = [[2, 5, 7],``         ``[3, 7, 2],``         ``[5, 6, 9]];``var` `n = v.length;` `console.log(``"The sum of all the element in middle row : "``);``console.log(v[Math.floor(n/2)].reduce((a,b)=>a+b,0));` `for``(``var` `i=0;ia+b,0));` `// contributed by rishabh`

## C#

 `using` `System;``using` `System.Collections.Generic;``using` `System.Linq;` `class` `Program {``    ``static` `void` `Main(``string``[] args) {``        ``List> v = ``new` `List> {``            ``new` `List<``int``> { 2, 5, 7 },``            ``new` `List<``int``> { 3, 7, 2 },``            ``new` `List<``int``> { 5, 6, 9 }``        ``};``        ``int` `n = v.Count;``        ``Console.WriteLine(``"The sum of all the element in middle row : "``);``        ``Console.WriteLine(v[n / 2].Sum());``        ``for` `(``int` `i = 0; i < n; i++) {``            ``for` `(``int` `j = i + 1; j < n; j++) {``                ``int` `temp = v[i][j];``                ``v[i][j] = v[j][i];``                ``v[j][i] = temp;``            ``}``        ``}``        ``Console.WriteLine(``"The sum of all the element in middle column : "``);``        ``Console.WriteLine(v[n / 2].Sum());``    ``}``}``// This code is contributed by user_dtewbxkn77n`

Output

```The sum of all the element in middle row :
12
The sum of all the element in middle column :
18```

The accumulated value of f applications. Complexity: O(n×k), where n is the distance from first to last , O(k) is complexity of f function.

Time Complexity: O(n*k).
Auxiliary Space : O(k)

My Personal Notes arrow_drop_up