[ Foro de Java ]

Duda sobre matrices(arreglos bidimensionales java)

22-Aug-2021 15:09
Invitado (An?nimo)
0 Respuestas

Me piden hallar los puntos de silla de una matriz(cuando son mínimos de una fila y máximos de una columna, o bien, cuando son máximos de una fila y mínimos de una columna). El caso es que hice cada función, hasta ahí se ejecuta. Pero en el main mis bucles no se ejecutan. De entrada le doy al programa una matriz y no me imprime los puntos de silla.
Aquí os dejo el código. Desde ya gracias!

import java.util.Scanner;

public class PuntosDeSillaMatriz {

public static void main(String[] args) {

int[][] m = LeerMatriz();
int[] maximosfila = MaxFila(m);
int[] maximoscolumna = MaxCol(m);
int[] minimosfila = MinFila(m);
int[] minimoscolumna = MinCol(m);
for (int i = 0; i < maximosfila.length; i++) {
}

for (int i = 0; i < maximosfila.length; i++) {
for (int j = 0; j < minimoscolumna.length; j++) {
if (maximosfila[i] == minimoscolumna[j]) {
System.out.println("algo va mal");
System.out.println(minimoscolumna[j]);
}
}

}
for (int i = 0; i < maximoscolumna.length; i++) {
for (int j = 0; j < minimosfila.length; j++) {
if (minimoscolumna[j] == maximosfila[i]) {
System.out.println(minimoscolumna[j]);
}
}
}

}

public static int[][] LeerMatriz() {
Scanner input = new Scanner(System.in);
System.out.println("Introduzca dimensiones y valores de matriz");
int m = input.nextInt();
int n = input.nextInt();
int[][] matrix = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = input.nextInt();
}
}
return matrix;
}

public static int[] MaxFila(int[][] m) {
int[] maxf = new int[m.length];
maxf[0] = m[0][0];
for (int i = 0; i < m[0].length; i++) {
for (int j = 0; j < m.length; j++) {
if (m[i][j] > maxf[i]) {
maxf[i] = m[i][j];
}
}
}
return maxf;
}

public static int[] MinFila(int[][] m) {
int[] minf = new int[m.length];
minf[0] = m[0][0];
for (int i = 0; i < m[0].length; i++) {
for (int j = 0; j < m.length; j++) {
if (m[i][j] < minf[i]) {
minf[i] = m[i][j];
}
}
}
return minf;
}

public static int[] MaxCol(int[][] m) {
int[] maxc = new int[m.length];
maxc[0] = m[0][0];
for (int j = 0; j < m.length; j++) {
for (int i = 0; i < m.length; i++) {
if (m[i][j] > maxc[i]) {
maxc[j] = m[i][j];
}
}
}
return maxc;
}

public static int[] MinCol(int[][] m) {
int[] minc = new int[m.length];
minc[0] = m[0][0];
for (int j = 0; j < m.length; j++) {
for (int i = 0; i < m.length; i++) {
if (m[i][j] < minc[i]) {
minc[j] = m[i][j];
}
}
}
return minc;
}

}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)