Java - multiplicar matrices

 
Vista:

multiplicar matrices

Publicado por Eliseth (2 intervenciones) el 28/01/2021 03:59:56
Buenas Noches, disculpen me podrían ayudar. Estoy haciendo un código para multiplicar matrices, pero al momento de ejecutar me sale esto:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
at multiplicación.main(multiplicación.java:52)
Alguien me podría decir la razón, porfavor
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

multiplicar matrices

Publicado por Kabuto (1381 intervenciones) el 28/01/2021 12:04:33
Sería más fácil ayudarte si nos muestras el código.
Pero en cualquier caso, ese mensaje te está indicando que uno de los indices que usas para recorrer ese array (sea vector o matriz) se ha salido del rango máximo e intenta acceder a una posición que no existe.

1
Index 2 out of bounds for length 2

Ahí te dice que un indice con valor 2, es excesivo para un array cuya longitud es 2.
Porque si su longitud es 2, sus elementos solo pueden estar en los indices [0] y [1]
Es imposible que tenga un elemento con indice [2]

Además te indica que el error ocurre en la línea 52 de tu programa, ahí es donde has de revisar que ocurre con ese indice. Quizás ahí tengas un bucle for que tengas que revisar su condición.

Por ejemplo, este bucle for siempre provocará una excepción como la que te ocurre.
Es un fallo muy común indicar que el indice se ha de incrementar mientras sea menor o igual que la longitud del array

1
2
3
for (int i = 0; i <= arreglo.length; i++ {
    System.out.println(arreglo[i]);
}

No debemos permitir que el indice sea igual que la longitud, siempre ha de ser menor
1
2
3
for (int i = 0; i < arreglo.length; i++ {
    System.out.println(arreglo[i]);
}

Ese es el típico error. Pero puede ser otro distinto.
Revísalo y si no lo detectas, muestra aquí tu código.
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

multiplicar matrices

Publicado por ELISETH (2 intervenciones) el 29/01/2021 18:02:28
ADJUNTO MI CÓDIGO, SALE ERROR:


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
64
65
66
67
68
69
70
71
72
import java.util.Scanner;
public class multiplicación {
 
	public static void main(String args[]) {
		int i,j,h;
		int F1=0, F2=0,C1=0,C2=0;
		System.out.print("Ingrese la filas 1: ");
		Scanner in=new Scanner(System.in);
		F1=in.nextInt();
		System.out.print("Ingrese la columna 1: ");
		C1=in.nextInt();
		System.out.print("Ingrese la fila 2: ");
		F2=in.nextInt();
		System.out.print("Ingrese la columna 2: ");
		C2=in.nextInt();
 
		int matriz1[][]=new int[F1][C1];
		int matriz2[][]=new int[F2][C2];
		int producto[][]=new int[F1][C2];
 
		if(F1==C2) {
			for(i=0;i<F1;i++) {
				for(j=0;j<C1;j++) {
					System.out.print("\n Ingrese la matriz 1: ");
					matriz1[i][j]=in.nextInt();
				}
			}
			for(i=0;i<F1;i++) {
				for(j=0;j<C1;j++) {
					System.out.print("["+matriz1[i][j]+"]");
				}
				System.out.print("\n");
			}
 
			for(i=0;i<F2;i++) {
				for(j=0;j<C2;j++) {
					System.out.print("\n Ingrese la matriz 2: ");
					matriz2[i][j]=in.nextInt();
				}
			}
 
			for(i=0;i<F2;i++) {
				for(j=0;j<C2;j++) {
					System.out.print("["+matriz2[i][j]+"]");
					}
				System.out.print("\n");
				}
 
			System.out.println("La matriz resultante es: ");
			for(i=0;i<F1;i++) {
					for(j=0;j<C2;j++) {
						for(h=1;h<C1;h++) {
							producto[i][j]=matriz1[i][h]*matriz2[h][j];
					}
				}
			}
			for(i=0;i<F1;i++) {
				System.out.print("[");
				for(j=0;j<C2;j++) {
					for(h=1;h<C1;h++) {
						System.out.print("["+producto[i][j]+"]");
					}
					System.out.print("]");
					System.out.println("\n");
					}
			}
		}else {
			System.out.print("La multiplicación no existe");
 
		}
	}
}
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

multiplicar matrices

Publicado por Rodrigo (623 intervenciones) el 29/01/2021 21:08:19
Parece que la condicion F1 == C2 hay que cambiarla por C1 == F2

Por otro lado, por que h comienza en 1 en los ciclos en los que participa?
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