Java Program to find the Difference Between Sum of Two Diagonals of a Matrix

In the previous article, we have discussed Java Program to Print Boundary Elements of a Matrix

In this article we are going to see how we can write a program to find the difference between sum of primary diagonal and secondary diagonal elements of a matrix in JAVA language.

Java Program to find the Difference Between Sums of Two Diagonals of a Matrix

A 3*3 Matrix is having 3 rows and 3 columns where this 3*3 represents the dimension of the matrix. Means there are 3*3 i.e. total 9 elements in a 3*3 Matrix.

Let’s understand it in more simpler way.

                   | A00   A01   A02 |
Matrix A =  | A10   A11   A12 |
                   | A20   A21   A22 | 3*3
  • Matrix A represents a 3*3 matrix.
  • A‘ represents the matrix element
  • Aij‘ represents the matrix element at it’s matrix position/index.
  • i‘ represents the row index
  • j‘ represents the column index
  • Means A00=Aij  where i=0 and j=0,  A01=aij where i=0 and j=1 and like this.
  • Here we have started row value from 0 and column value from 0.

Let’s see different ways to find difference between sum of primary diagonal and secondary diagonal elements of a matrix.

Method-1: Java Program to find the Difference Between Sum of Two Diagonals of a Matrix By Static Initialization of Array Elements

Approach:

  • Initialize an array of size 3×3 with values.
  • Show the array to the user.
  • Similarly use two for loops to iterate the rows and columns, then calculate the main diagonal sum.
  • Repeat the above step to calculate the counter diagonal sum.
  • Print the difference.

Program:

import java.util.Scanner;
public class matrix{
    public static void main(String args[])
    {
        //Scanner class to take input
        Scanner scan = new Scanner(System.in);

        // Initializing the 3X3 matrix i.e. 2D array
        int arr[][] = {{19,25,32},{40,54,62},{70,20,60}}, mainSum = 0, counterSum = 0;
        int row, col;
        
        System.out.print("The array elements are : ");
        
        // Loop to print the elements
        for(row=0;row<3;row++)
        {
            // Used for formatting
            System.out.print("\n");
            for(col=0;col<3;col++)
            {
                System.out.print(arr[row][col]+" ");
            }
        }
        System.out.print("\n");

        // Loop to take the sum of main diagonal elements
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
            {
                if(row==col)
                    mainSum+=arr[row][col];
                // if(row+col==2)
            }
        System.out.println("Sum of main diagonal : "+mainSum);

        // Loop to take the sum of counter diagonal elements
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
            {
                if(row+col==2)
                    counterSum+=arr[row][col];
            }
        System.out.println("Sum of counter diagonal : "+counterSum);

        // Printing difference betweeen both diagonals sum
        System.out.print("\nDifference between sum of both diagonal : "+(mainSum-counterSum));
    }
}

Output:

The array elements are : 
19 25 32 
40 54 62 
70 20 60 
Sum of main diagonal : 133
Sum of counter diagonal : 156

Difference between sum of both diagonal : -23

Method-2: Java Program to find the Difference Between Sum of Two Diagonals of a Matrix By Dynamic Initialization of Array Elements

Approach:

  • Declare an array of size 3×3.
  • Ask the user for input of array elements.
  • Use two for loops to iterate the rows and columns to input the array elements.
  • Show the array to the user.
  • Similarly use two for loops to iterate the rows and columns, then calculate the main diagonal sum.
  • Repeat the above step to calculate the counter diagonal sum.
  • Print the difference.

Program:

import java.util.Scanner;
public class matrix{
    public static void main(String args[])
    {
        //Scanner class to take input
        Scanner scan = new Scanner(System.in);

        // Initializing the 3X3 matrix i.e. 2D array
        int arr[][] = new int[3][3];

        System.out.print("Enter the 3x3 matrix elements :");
        int row, col, mainSum = 0, counterSum = 0;
        // Loop to take user input
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
                arr[row][col] = scan.nextInt();

        
        System.out.print("The array elements are : ");
        // Loop to print the elements
        for(row=0;row<3;row++)
        {
            // Used for formatting
            System.out.print("\n");
            for(col=0;col<3;col++)
            {
                System.out.print(arr[row][col]+" ");
            }
        }
        System.out.print("\n");

        // Loop to take the sum of main diagonal elements
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
            {
                if(row==col)
                    mainSum+=arr[row][col];
                // if(row+col==2)
            }
        System.out.println("Sum of counter diagonal : "+mainSum);
        
        // Loop to take the sum of counter diagonal elements
        for(row=0;row<3;row++)
            for(col=0;col<3;col++)
            {
                if(row+col==2)
                    counterSum+=arr[row][col];
            }
        System.out.println("Sum of counter diagonal : "+counterSum);
        
        // Printing difference betweeen both diagonals sum
       System.out.print("\nDifference between sum of both diagonal : "+(mainSum-counterSum));
    }
}


Output:

Enter the 3x3 matrix elements :The array elements are
20 20 30 
40 50 60 
70 80 90 
Sum of counter diagonal : 160
Sum of counter diagonal : 150

Difference between sum of both diagonal : 10

Are you a job seeker and trying to find simple java programs for Interview? This would be the right choice for you, just tap on the link and start preparing the java programs covered to crack the interview.

Related Java Programs: