No lo hice ayer escrito en diagonal imprimir, colapsar mentalidad y hacerlo de nuevo hoy / ** * @author Eightn0 * @Create 2021-03-17 19:03 * Función: imprimir matriz alineada diagonalmente de m * n * / clase pública PrintNums { public static void main (String [] args) { // Solicitud para ingresar una matriz m * n System.out.println ("Este programa se usa para imprimir la matriz en diagonal, ingrese la longitud de la matriz:") ; Scanner scanner = new Scanner (System.in); int m = scanner.nextInt (); System.out.println ("Por favor ingrese la altura de la matriz:"); int n = scanner.nextInt (); // Genere una matriz bidimensional [m] [n], almacene los datos de entrada System.out.println ("Introduzca los elementos de la matriz:"); int [] [] arr = new int [m] [n]; for ( int i = 0; i <arr.length; i ++) { for (int j = 0; j <arr [i] .length; j ++) { arr [i] [j] = scanner.nextInt (); } } // Genera una matriz unidimensional para guardar el resultado int [] resultArr = new int [m * n]; // Observe la ley de salida, cuando el subíndice y el número son pares, mueva la columna +1 a la derecha cuando llegue a la primera fila. Si llega a la última columna, sume 1 a la fila y muévala hacia abajo. // Cuando la suma del subíndice es impar: Si se alcanza la primera columna, la fila se incrementará en 1 para moverse hacia abajo, y si se alcanza la última fila, la columna se incrementará en 1 y se moverá hacia la derecha. int r = 0; int c = 0; for (int i = 0; i <resultArr.length; i ++) { resultArr [i] = arr [r] [c]; if ((r + c)% 2 == 0) { if (c == (n-1)) {// El elemento está en la última columna (la última columna debe juzgarse primero) r ++; // Bajar } else if (r == 0) {/ / El elemento está en el primer OK, vaya a la derecha c ++; } else {// Otras situaciones r--; c ++; } } else {// La suma del índice es impar if (r == (m-1)) {// Última línea c ++; // Ir a la derecha } else if (c == 0) {// Primera columna r ++; / / Go down } else { r ++; // línea c -; // columna } } } // resultado de salida para (Integer integer: resultArr) { System.out.println (integer); } } }
Impresión diagonal
Supongo que te gusta
Origin blog.csdn.net/vivian233/article/details/114990054
Recomendado
Clasificación