Skip to content
Related Articles

Related Articles

Matrix sum except one item
  • Difficulty Level : Easy
  • Last Updated : 29 Aug, 2018

Given a n*m matrix find the sum of the elements of the matrix without the element specified by its position

Examples:

Input : mat[] = {{1 2 4}, 
                {5 6 8}}
         cell = (0 2)
Output :22
We need to find sum of all elements
except mat[0][2].

Input : mat[][] = {{5 6 2 3}, {2 3 1 8}, {9 6 5 2}}
        cell = (1 2)
Output :51

A simple solution is to traverse through matrix. For every visited cell, check if it is the cell to be ignored.

C++




// C++ program to find sum 
// of matrix except cell (x, y)
#include<bits/stdc++.h>
using namespace std;
  
// Dimension of input matrix
# define R 2
# define C 3
  
// Returns sum of arr[][]
// except cell arr[x][y]
int calcSum(int arr[R][C], 
            int x, int y)
{
    int sum = 0;
    for (int i = 0; i < R; i++)
    {
        for (int j = 0; j < C; j++)
        {
            if (i != x || j != y)
                sum = sum + arr[i][j];
        }
    }
    return sum;
}
  
// Driver code
int main()
{
    int x = 0, y = 2;
    int arr[R][C] = {1, 2, 4, 
                     5, 6, 8 };
                      
    cout << calcSum(arr, x, y);
}
  
// This code is contributed 
// by ChitraNayal


Java




// Java program to find sum of matrix except 
// cell (x, y)
class Matrix {
  
    // Returns sum of arr[][] except cell arr[x][y]
    static int calcSum(int[][] arr, int x, int y)
    {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
              if (i != x || j != y)
                sum = sum + arr[i][j];
            }
        }
        return sum;
    }
    public static void main(String[] args)
    {
        int x = 0, y = 2;
        int[][] arr = {
            { 1, 2, 4 }, { 5, 6, 8 },
        };
        System.out.println(calcSum(arr, x, y));
    }
}


C#




// C# program to find sum 
// of matrix except cell (x, y)
using System;
  
class GFG 
{
  
    // Returns sum of arr[,] 
    // except cell arr[x][y]
    static int calcSum(int[,] arr,
                       int x, int y)
    {
        int sum = 0;
        for (int i = 0; 
                 i < arr.GetLength(0); i++) 
        {
            for (int j = 0; 
                     j < arr.GetLength(1); j++) 
            {
            if (i != x || j != y)
                sum = sum + arr[i, j];
            }
        }
        return sum;
    }
      
    // Driver Code
    public static void Main()
    {
        int x = 0, y = 2;
        int[,] arr = {{ 1, 2, 4 }, 
                      { 5, 6, 8 }};
        Console.Write(calcSum(arr, x, y));
    }
}
  
// This code is contributed
// by ChitraNayal


Python 3




# Python 3 program to find 
# sum of matrix except cell (x, y)
  
# Returns sum of arr[][]
# except cell arr[x][y]
def calcSum(arr, x, y):
    s = 0
    for i in range(R):
        for j in range(C):
            if (i != x or j != y):
                s = s + arr[i][j];
    return s;
  
# Driver code
x = 0
y = 2
arr = [[ 1, 2, 4 ],
       [ 5, 6, 8 ]]
R = 2
C = 3
  
print(calcSum(arr, x, y))
  
# This code is contributed 
# by ChitraNayal


PHP




<?php 
// PHP program to find 
// sum of matrix except 
// cell (x, y)
$R = 2;
$C = 3;
  
// Returns sum of arr[][]
// except cell arr[x][y]
function calcSum(&$arr, $x, $y)
{
    global $R,$C;
    $sum = 0;
    for ($i = 0; $i < $R; $i++) 
    {
        for ($j = 0; $j < $C; $j++)
        {
            if ($i != $x || $j != $y)
                $sum = $sum + $arr[$i][$j];
        }
    }
    return $sum;
}
  
// Driver code
$x = 0;
$y = 2;
$arr = array(array(1, 2, 4),
             array(5, 6, 8));
          
echo (calcSum($arr, $x, $y)); 
  
// This code is contributed 
// by ChitraNayal
?>


Output:

22

The above solution causes an extra comparison for every matrix item. A better solution is to first find overall sum, then subtract given cell.

C++




// C++ program to find sum 
// of matrix except cell (x, y)
#include<bits/stdc++.h>
using namespace std;
  
#define R 2
#define C 3
  
// Returns sum of arr[][] 
// except cell arr[x][y]
int calcSum(int arr[R][C], 
            int x, int y)
{
    int sum = 0;
    for (int i = 0; i < R; i++) 
        for (int j = 0; j < C; j++) 
            sum = sum + arr[i][j];
  
    return sum - arr[x][y];
}
  
// Driver code
int main()
{
    int x = 0, y = 2;
    int arr[R][C]= {1, 2, 4 ,
                    5, 6, 8 };
  
    cout << (calcSum(arr, x, y));
}
  
// This code is contributed
// by ChitraNayal


Java




// Java program to find sum of matrix except 
// cell (x, y)
class Matrix {
  
    // Returns sum of arr[][] except cell arr[x][y]
    static int calcSum(int[][] arr, int x, int y)
    {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) 
            for (int j = 0; j < arr[i].length; j++) 
                sum = sum + arr[i][j];
  
        return sum - arr[x][y];
    }
  
    public static void main(String[] args)
    {
        int x = 0, y = 2;
        int[][] arr = {
            { 1, 2, 4 }, { 5, 6, 8 },
        };
        System.out.println(calcSum(arr, x, y));
    }
}


C#




// C# program to find sum 
// of matrix except cell (x, y)
using System;
  
class GFG 
{
  
    // Returns sum of arr[,]
    // except cell arr[x,y]
    static int calcSum(int[,] arr, 
                       int x, int y)
    {
        int sum = 0;
        for (int i = 0; 
                 i < arr.GetLength(0); i++) 
            for (int j = 0; 
                     j < arr.GetLength(1); j++) 
                sum = sum + arr[i, j];
  
        return sum - arr[x, y];
    }
  
    // Driver code
    public static void Main()
    {
        int x = 0, y = 2;
        int[,] arr = {{ 1, 2, 4 }, 
                      { 5, 6, 8 }};
        Console.Write(calcSum(arr, x, y));
    }
}
  
// This code is contributed
// by ChitraNayal


Python 3




# Python 3 program to find 
# sum of matrix except cell (x, y)
  
# Returns sum of arr[][] 
# except cell arr[x][y]
def calcSum( arr, x, y):
    s = 0
    for i in range(R): 
        for j in range(C): 
            s = s + arr[i][j]
  
    return s - arr[x][y]
  
# Driver code
x = 0
y = 2
R = 2
C = 3
arr = [[1, 2, 4 ],
       [5, 6, 8 ]]
  
print (calcSum(arr, x, y))
  
# This code is contributed 
# by ChitraNayal


PHP




<?php 
// PHP program to find sum 
// of matrix except cell (x, y)
$R = 2;
$C = 3;
  
// Returns sum of $arr[][] 
// except cell $arr[$x][$y]
function calcSum(&$arr, $x, $y)
{
    global $R,$C;
    $sum = 0;
    for ($i = 0; $i < $R; $i++) 
        for ($j = 0; $j < $C; $j++) 
            $sum = $sum + $arr[$i][$j];
  
    return $sum - $arr[$x][$y];
}
  
// Driver code
$x = 0;
$y = 2;
$arr= array(array(1, 2, 4 ),
            array(5, 6, 8 ));
  
echo (calcSum($arr, $x, $y));
  
// This code is contributed
// by ChitraNayal
?>


Output:

22

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :