In this article we are going to see how we can write a program to swap the diagonal elements of a matrix in JAVA language.
Java Program to Swap 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
wherei=0
andj=0
,A01=aij
wherei=0
andj=1
and like this. - Here we have started
row
value from 0 andcolumn
value from 0.
Let’s see different ways to swap two diagonals.
Method-1: Java Program to Swap 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.
- Then swapping will take place only in first and last row(Also first element and last element). As middle row center element does not need to be swapped as after swapping also that will be in the same place.
- Print the matrix.
Program:
import java.util.Scanner; public class Matrix { public static void main(String args[]) { // 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 matrix elements are : "); printMatrix(arr); System.out.print("After Swapping Diagonal Elements : "); swapDiagonals(arr); } // Method to print the matrix static void printMatrix(int arr[][]) { int row, col; // 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"); } // Method to swap the diagonals static void swapDiagonals(int arr[][]) { int row, col; // Swaps the diagonal elements for(row=0;row<3;row++) if(row!=3/2) { int temp = arr[row][row]; arr[row][row] = arr[row][2-row]; arr[row][2-row] = temp; } printMatrix(arr); } }
Output: The matrix elements are : 19 25 32 40 54 62 70 20 60 After Swapping Diagonal Elements : 32 25 19 40 54 62 60 20 70
Method-2: Java Program to Swap Diagonals of a Matrix By Dynamic Initialization of Array Elements
Approach:
- Initialize an array of size 3×3.
- Ask the user for input.
- Use two for loops to iterate the rows and columns to input the array elements.
- Show the array to the user.
- Then swapping will take place only in first and last row(Also first element and last element). As middle row center element does not need to be swapped as after swapping also that will be in the same place.
- Print the matrix.
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]; int row, col ; System.out.println("Enter the 3x3 matrix elements :"); // 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 matrix elements are:"); printMatrix(arr); System.out.print("\nAfter Swapping Diagonal Elements"); swapDiagonals(arr); } // Function to print the matrix static void printMatrix(int arr[][]) { int row, col; // 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]+" "); } } } // Function to swap the diagonals static void swapDiagonals(int arr[][]) { int row, col; // Swaps the diagonal elements for(row=0;row<3;row++) if(row!=3/2) { int temp = arr[row][row]; arr[row][row] = arr[row][2-row]; arr[row][2-row] = temp; } printMatrix(arr); } }
Output: Enter the 3x3 matrix elements : 1 2 3 4 5 6 9 8 7 The matrix elements are: 1 2 3 4 5 6 9 8 7 After Swapping Diagonal Elements 3 2 1 4 5 6 7 8 9
Are you new to the java programming language? We recommend you to ace up your practice session with these Basic Java Programs Examples