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 Arepresents 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=Aijwherei=0andj=0,A01=aijwherei=0andj=1and like this. - Here we have started
rowvalue from 0 andcolumnvalue 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