Estoy tratando de hacer un programa en JAVA con la suma de dos matrices, sin embargo no me la imprime ¿porque?
Si me sale el menu, me pregunta sobre el numero de columnas y renglones, despues me lee las dos matrices pero no me imprime la suma de ellas.
Esto es lo que me sale:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Matriz.matrizsuma<PPMatriz.java:51>
at PPMatriz.main<PPMatriz.java:120>
Y la verdad no entiendo, pense que tal ves seria por el nombre de la clase pero no lo es. Este es el codigo:
import java.util.*;
class Matriz{
int[ ][ ]y;
Scanner in= new Scanner(System.in);
public Matriz(int r, int c){
y= new int[r][c];
}
public Matriz() {
}
public void llenaMatriz(int [ ][ ]y){
int i,j;
System.out.println("\nLeyendo Matriz...\n");
for (i=0; i<y.length;i++)
for (j=0; j<y[i].length; j++) {
System.out.print("Dame el elemento["+i+"]["+j+"]: ");
y[i][j] = in.nextInt();
}
}
public int obtenElemento(int i, int j){
return y[i][j];
}
public int asignaElemento(int i, int j, int valor){
return y[i][j]=valor;
}
public int[][] matrizsuma(int [ ][ ] y, int [ ][ ]z,int [ ][ ]u){
int i,j;
for (i=0; i<y.length;i++){
for (j=0; i<y[0].length; j++)
u[i][j]=this.asignaElemento(i,j,y[i][j]+this.obtenElemento(i,j));
}return u;
}
public void imprimeMatriz(int [ ][ ]matriz){
int i,j;
System.out.println("\n Imprimiendo Matriz: \n");
for (i=0; i<y.length;i++){
for (j=0; i<y[0].length; j++)
System.out.print(matriz[i][j]+"");
System.out.println();
}
}
}
public class PPMatriz{
public static void menu(){
System.out.println("\n\t\t\t * M E N U * ");
System.out.println("============================== ==================================");
System.out.println("[1] Suma");
System.out.println("[0] Salir");
System.out.print("Teclea la opcivõn deseada: ");
}
public static void main (String[ ]args){
Scanner in = new Scanner(System.in);
int r,c, option, sum, rest, multi, tras, deter, inv;
boolean seguir;
String entrada;
seguir = true;
do{
menu();
option = in.nextInt();
switch(option){
case 1: System.out.print("Dame el num. de renglones: ");
r = in.nextInt();
System.out.print("Dame el num. de columnas: ");
c = in.nextInt();
int [][]n2=new int[r][c];
int [ ][ ]n1=new int[r][c];
Matriz x=new Matriz(r,c);
Matriz z=new Matriz(r,c);
int [ ][ ]n3=new int[r][c];
x.llenaMatriz(n2);
z.llenaMatriz(n1);
n3=x.matrizsuma(n1,n2,n3);
x.imprimeMatriz(n3);
case 0: seguir = false;
break;
default: System.out.println("Error 4440: Teclea una opcion valida");
}
} while(seguir);
}
}