Descripción del problema: escriba un programa Java que acepte una array de orden M × N y luego intercambie las diagonales de la array.
Pasos:
1. Solo podemos intercambiar diagonales por una array cuadrada.
2. Cree una array cuadrada de tamaño [M × M].
3. Verifique que la array sea una array cuadrada o no. Si la array es cuadrada, siga el paso 3; de lo contrario, finalice el programa.
4. Aplique la lógica para la diagonal de intercambio de la array. A continuación se proporciona alguna lógica.
Método 1: Intercambiar elemento a[i][i] y a[i][n – i -1]
para (j = 0; j < m; j++) {
temperatura = a[j][j];
a[j][j] = a[j][n – 1 – j];
a[j][n – 1 – j] = temperatura;
}
Ejemplo:
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"); } } }
Producción:
Introduzca el número de filas 3
Ingrese el número de columnas 3
Ingrese todos los valores de la array
1
2
3
4
5
6
7
8
9
array original:
1 2 3
4 5 6
7 8 9
Después de intercambiar las diagonales de la array
3 2 1
4 5 6
9 8 7
Ejemplo 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"); } } }
Producción:
Introduzca el número de filas 2
Introduzca el número de columnas 1
Ingrese todos los valores de la array
1
2
Las filas no son iguales a las columnas
Publicación traducida automáticamente
Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA