Matriz Diagonales de una Posicion

0 votos
preguntado por matiixboyx (170 puntos) Abr 18, 2016 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
respondido por ronald (320 puntos) Abr 29, 2016
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....
comentado por Diana Karina HM (100 puntos) Jul 14, 2016
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

0 votos
0 respuestas
0 votos
0 respuestas
+1 voto
3 respuestas
0 votos
0 respuestas
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
...