Java - duda Ejercicio Matrices

 
Vista:
sin imagen de perfil

duda Ejercicio Matrices

Publicado por Fran (2 intervenciones) el 29/01/2022 10:59:13
Buenos días,

Tengo un pequeño atranque en un ejercicio que estoy haciendo, no llevo mucho tiempo programando y me saltan algunas dudas, no sé si me podréis ayudar con esta.

Gracias de antemano.

Resulta que tengo que encontrar en una matriz, el valor Maximo y el valor Mínimo, hasta ahí bien, en lo que estoy parado es a la hora, de que me pide también, si ese valorMax y ValorMin, coinciden en la misma Fila o si coinciden en la misma Columna,

Lo mismo es algo sencillo pero no doy con ello este texto, ahora mismo con este código que adjunto en el mensaje, me recorre la matriz, me dice cual es el mínimo de toda la tabla y el máximo, pero no sé como decirle si esos valores coinciden en la FILA o si Coinciden en la columna, tambíen puede ser que no coincidan....

Espero haberme explicado, adjunto también imagen por si se ve mejor que en el propio texto.

Gracias y saludos!

public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int matriz[][] = new int[5][5];
int valorMax = 0, valorMin = 999999;
int filaMayor = 0, filaMenor = 0, columMayor = 0, columMenor = 0;

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

for (int j = 0; j < matriz[0].length; j++) {
matriz[i][j] = teclado.nextInt();

if (matriz[i][j] < valorMin) {
valorMin = matriz[i][j];
filaMenor = j;
columMenor = j;

}

if (matriz[i][j] > valorMax) {
valorMax = matriz[i][j];
filaMayor = i;
columMayor = j;

}

}

System.out.println("");
System.out.println("VALORES MÁXIMOS Y MINIMOS");
System.out.println("El Máximo es: " + valorMax + " Fila: " + filaMayor + " Columna: " + columMayor);
System.out.println("El Mínimo es: " + valorMin + " Fila: " + filaMenor + " Columna: " + columMenor);

}

System.out.println("");

System.out.println("");
System.out.println("MOSTRAMOS LA MATRIZ");
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[0].length; j++) {

System.out.print(matriz[i][j] + " ");

}
System.out.println("");
}

}
}
duda_matriz
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

duda Ejercicio Matrices

Publicado por Kabuto (1381 intervenciones) el 29/01/2022 23:49:57
Pues tienes todo lo que necesitas.

Es decir, si por ejemplo la variable filaMayor es igual a la filaMenor, pues eso significa que los valores máximo y mínimo se encuentran en la misma fila.
Y lo mismo con las columnas.

Solo tienes que hacer un par de preguntas con IF y ya está.

He modificado tu código añadiendo eso.
Y he cambiado unas cositas.
Una es que los valores para la matriz no los pido por teclado si no que los genero con un objeto Random. Me da mucha pereza meter 25 valores por teclado cada vez que quiero probar el programa.

Luego he corregido un pequeño fallo, el valor para la variable filaMenor lo estás cogiendo de la variable j, cuando ha de ser de la i.
Para la filaMayor si lo estás haciendo bien.

Luego, los mensajes para mostrar los valores máximos y mínimos los he puesto fuera del bucle, para que solo salga una vez, cuando ya se tenga definitivamente los valores mayor y menor.

Y a continuación, los dos IF para preguntar e informar si coinciden las filas o columnas de esos valores.
Marco en negrita los cambios.

Pregunta si algo no ha quedado claro, pero vamos, repito que ya tenías todos los datos necesarios para hacer lo que te faltaba.
Solo había que añadir dos preguntas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.Random;
import java.util.Scanner;
 
public class MatrizMayMen {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		int matriz[][] = new int[5][5];
		int valorMax = 0, valorMin = 999999;
		int filaMayor = 0, filaMenor = 0, columMayor = 0, columMenor = 0;
 
		Random azar = new Random();
 
		for (int i = 0; i < matriz.length; i++) {
 
			for (int j = 0; j < matriz[0].length; j++) {
				matriz[i][j] = azar.nextInt(20);
 
				if (matriz[i][j] < valorMin) {
					valorMin = matriz[i][j];
					filaMenor = i;
					columMenor = j;
 
				}
 
				if (matriz[i][j] > valorMax) {
					valorMax = matriz[i][j];
					filaMayor = i;
					columMayor = j;
 
				}
 
			}
 
		}
 
		System.out.println();
		System.out.println("VALORES MÁXIMOS Y MINIMOS");
		System.out.println("El Máximo es: " + valorMax + " Fila: " + filaMayor + " Columna: " + columMayor);
		System.out.println("El Mínimo es: " + valorMin + " Fila: " + filaMenor + " Columna: " + columMenor);
 
		System.out.println();
 
		if (filaMayor == filaMenor)
			System.out.println("Los valores Máximo y Mínimo están en la misma fila");
 
		if (columMayor == columMenor)
			System.out.println("Los valores Máximo y Mínimo están en la misma columna");
 
		System.out.println();
		System.out.println("MOSTRAMOS LA MATRIZ");
		for (int i = 0; i < matriz.length; i++) {
			for (int j = 0; j < matriz[0].length; j++) {
 
				System.out.print(matriz[i][j] + " ");
 
			}
			System.out.println("");
		}
 
	}
 
}


Un ejemplo de ejecución en pantalla:
1
2
3
4
5
6
7
8
9
10
11
12
VALORES MÁXIMOS Y MINIMOS
El Máximo es: 19 Fila: 0 Columna: 0
El Mínimo es: 1 Fila: 0 Columna: 1
 
Los valores Máximo y Mínimo están en la misma fila
 
MOSTRAMOS LA MATRIZ
19 1 2 14 15
6 2 17 7 12
3 15 6 9 18
12 5 1 17 12
5 10 10 9 13
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

duda Ejercicio Matrices

Publicado por Fran (2 intervenciones) el 30/01/2022 12:31:42
Mil gracias!!!!!!


Nada, no salía de ahí, ahora viendo tu código y revisándolo parece fácil, pero claro, en el momento no conseguía ver más allá

Repito, muchísimas gracias por tu ayuda!!

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar