0 votos
por (70 puntos) en Java

Hola, necesito ayuda con lo siguiente:

Necesito cambiar los valores de 0 a 1 de las diagonales de una determinada posicion, como se muestra en la siguiente imagen, agradeceria mucho por favor el codigo.

1 Respuesta

–1 voto
por (220 puntos)
import java.util.Scanner;

public class CambiaValorDiagonales {

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n, m, fila, columna;
        System.out.println("Cuantas filas? ");
        n = in.nextInt();
        System.out.println("Cuantas columnas? ");
        m = in.nextInt();

        int[][] matriz = new int[n][m];

        System.out.println("********Elementos de la matriz*****");
        for (int f = 0; f < n; f++) {
            for (int c = 0; c < m; c++) {
                System.out.print(" " + matriz[f][c]);
            }
            System.out.println();
        }

        System.out.println("************************");
        System.out.println("Ingrese la fila:");
        fila = in.nextInt();
        System.out.println("Ingrese la columna:");
        columna = in.nextInt();

        //Cambiando los elementos de la fila
        for (int i = 0; i < m; i++) {
            matriz[fila][i] = 1;
        }

        //Cambiando los elementos de la columna
        for (int i = 0; i < n; i++) {
            matriz[i][columna] = 1;
        }

        int valorFila, valorColumna;
        //****Cambiando los elementos de la diagonal /
        //Parte Izquierda...
        valorFila = fila + 1;
        valorColumna = columna - 1;
        while (valorFila < n && valorColumna >= 0) {
            matriz[valorFila][valorColumna] = 1;
            valorFila++;
            valorColumna--;
        }
        //Parte derecha...
        valorFila = fila - 1;
        valorColumna = columna + 1;
        while (valorFila >= 0 && valorColumna < m) {
            matriz[valorFila][valorColumna] = 1;
            valorFila--;
            valorColumna++;
        }
        //****

        //****Cambiando los elementos de la diagonal \ ****
        //Parte Izquierda...
        valorFila = fila - 1;
        valorColumna = columna - 1;
        while (valorFila >= 0 && valorColumna >= 0) {
            matriz[valorFila][valorColumna] = 1;
            valorFila--;
            valorColumna--;
        }
        //Parte derecha...
        valorFila = fila + 1;
        valorColumna = columna + 1;
        while (valorFila < n && valorColumna < m) {
            matriz[valorFila][valorColumna] = 1;
            valorFila++;
            valorColumna++;
        }
        //********

        System.out.println("*****Elementos cambiados*****");
        for (int f = 0; f < n; f++) {
            for (int c = 0; c < m; c++) {
                System.out.print(" " + matriz[f][c]);
            }
            System.out.println();
        }
    }

}

Espero comentarios....
por
Bueno pues no estoy del todo segura como quieres eso pero algo que te podria ayudar seria algo asi

for (int i = 0 ; i < miMatriz.length; i++)
{
    for (int j = 0 ; j < miMatriz.length; j++){

if(i == j){
    if(miMatriz[i][j] == equis){
        contador_Xdiagonal1 ++;
      }
     }
   }
  }

Preguntas relacionadas

Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...