GFG App
Open App
Browser
Continue

# Java Program to Accept a Matrix of Order M x N & Interchange the Diagonals

Problem Description: Write a Java program that accepts a matrix of M Ă— N order and then interchange diagonals of the matrix.

Steps:

1. We can only interchange diagonals for a square matrix.

2. Create a square matrix of size [M Ă— M].

3. Check the matrix is a square matrix or not. If the matrix is square then follow step 3 else terminate the program.

4. Apply logic for interchange diagonal of the matrix some logic is given below.

Method 1: Swap element a[i][i] and a[i][n – i -1]

for (j = 0; j < m; j++) {

temp = a[j][j];

a[j][j] = a[j][n – 1 – j];

a[j][n – 1 – j] = temp;

}

Example:

## Java

 `//  Java Program to Accept a Matrix of Order M x N &` `//  Interchange the Diagonals`   `import` `java.util.Scanner;` `public` `class` `InterchangeDiagonals {` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``// declare variable` `        ``int` `m, n, i, j, temp;`   `        ``// create a object of scanner class` `        ``Scanner sc = ``new` `Scanner(System.in);` `        ``System.out.print(``"Enter number of rows "``);`   `        ``// take number of rows` `        ``m = sc.nextInt();`   `        ``System.out.print(``"Enter number of columns "``);`   `        ``// take number of columns` `        ``n = sc.nextInt();`   `        ``// declare a mxn order array` `        ``int` `a[][] = ``new` `int``[m][n];`   `        ``// if block it's execute when m is equals to n` `        ``if` `(m == n) {` `            ``System.out.println(` `                ``"Enter all the values of matrix "``);`   `            ``// take the matrix inputs` `            ``for` `(i = ``0``; i < m; i++) {` `                ``for` `(j = ``0``; j < n; j++) {` `                    ``a[i][j] = sc.nextInt();` `                ``}` `            ``}`   `            ``System.out.println(``"original Matrix:"``);`   `            ``// print the original matrix` `            ``for` `(i = ``0``; i < m; i++) {` `                ``for` `(j = ``0``; j < n; j++) {` `                    ``System.out.print(a[i][j] + ``" "``);` `                ``}` `                ``System.out.println(``""``);` `            ``}`   `            ``// perform interchange` `            ``for` `(j = ``0``; j < m; j++) {` `                ``temp = a[j][j];` `                ``a[j][j] = a[j][n - ``1` `- j];` `                ``a[j][n - ``1` `- j] = temp;` `            ``}` `            ``System.out.println(` `                ``" after interchanging diagonals of matrix "``);`   `            ``// print interchanged matrix` `            ``for` `(i = ``0``; i < m; i++) {` `                ``for` `(j = ``0``; j < n; j++) {` `                    ``System.out.print(a[i][j] + ``" "``);` `                ``}` `                ``System.out.println(``""``);` `            ``}` `        ``}`   `        ``// else block it's only execute when m is not equals` `        ``// to n` `        ``else` `{` `            ``System.out.println(``"Rows not equal to columns"``);` `        ``}` `    ``}` `}`

Output:

Enter number of rows 3

Enter number of columns 3

Enter all the values of matrix

1

2

3

4

5

6

7

8

9

Original Matrix:

1   2   3

4   5   6

7   8   9

After interchanging diagonals of matrix

3   2   1

4   5   6

9   8   7

Example 2:

## Java

 `//  Java Program to Accept a Matrix of Order MxN &` `//  Interchange the Diagonals`   `import` `java.util.Scanner;` `public` `class` `InterchangeDiagonals {` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``// declare variable` `        ``int` `m, n, i, j, temp;`   `        ``// create a object of scanner class` `        ``Scanner sc = ``new` `Scanner(System.in);` `        ``System.out.print(``"Enter number of rows "``);`   `        ``// take number of rows` `        ``m = sc.nextInt();`   `        ``System.out.print(``"Enter number of columns "``);`   `        ``// take number of columns` `        ``n = sc.nextInt();`   `        ``// declare a mxn order array` `        ``int` `a[][] = ``new` `int``[m][n];`   `        ``// if block it's execute when m is equals to n` `        ``if` `(m == n) {` `            ``System.out.println(` `                ``"Enter all the values of matrix "``);`   `            ``// take input matrix` `            ``for` `(i = ``0``; i < m; i++) {` `                ``for` `(j = ``0``; j < n; j++) {` `                    ``a[i][j] = sc.nextInt();` `                ``}` `            ``}`   `            ``System.out.println(``"original Matrix:"``);`   `            ``// print original matrix` `            ``for` `(i = ``0``; i < m; i++) {` `                ``for` `(j = ``0``; j < n; j++) {` `                    ``System.out.print(a[i][j] + ``" "``);` `                ``}` `                ``System.out.println(``""``);` `            ``}`   `            ``// performing interchange` `            ``for` `(j = ``0``; j < m; j++) {` `                ``temp = a[j][j];` `                ``a[j][j] = a[j][n - ``1` `- j];` `                ``a[j][n - ``1` `- j] = temp;` `            ``}` `            ``System.out.println(` `                ``" after interchanging diagonals of matrix "``);`   `            ``// print interchanged matrix` `            ``for` `(i = ``0``; i < m; i++) {` `                ``for` `(j = ``0``; j < n; j++) {` `                    ``System.out.print(a[i][j] + ``" "``);` `                ``}` `                ``System.out.println(``""``);` `            ``}` `        ``}`   `        ``// else block it's only execute when m is not equals` `        ``// to n` `        ``else` `{` `            ``System.out.println(``"Rows not equal to columns"``);` `        ``}` `    ``}` `}`

Output:

Enter number of rows 2

Enter number of columns 1

Enter all the values of matrix

1

2

Rows not equal to columns

My Personal Notes arrow_drop_up