Foro sobre Java SE > Sumando por columna error al superar 2
En las cuadradas no da error 2x2 3x3 4x4 en las demas si :S
public class NewMain {
public static void main(String[] args) {
int[][] matriz = new int[2][3];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
matriz[i][j] = i + j;
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("valor para i= " + i + " j=" + j + " es " + matriz[i][j]);
}
}
System.out.println("Suma por filas");
for (int i = 0; i < 2; i++) {
int resultado = 0;
for (int j = 0; j < 3; j++) {
resultado += matriz[i][j];
}
System.out.println("resultado para i= " + i + " es " + resultado);
}
System.out.println("Suma por columnas");
for (int j = 0; j < 3; j++) {
int resultado = 0;
for (int i = 0; i < 2; i++) {
resultado += matriz[i][j];
}
System.out.println("resultado para j= " + j + " es " + resultado);
}
}
}
Intento hacer que muestre el resultado de una suma por columna, lo hace bien cuando pongo 2 x 2, pero si pongo 3 o mas da este error:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at MatrizC.main(MatrizC.java:26)
import java.util.*;
public class MatrizC {
public static void main (String arg []){
Scanner cosA = new Scanner(System.in);
int i = 0, j = 0, renglones=0, columnas=0,res=0,suma=0,col=1; //Declarando variables que usare
System.out.print("Introduce el numero de renglones: "); //Pidiendo la cantidad de renglones que seran
renglones = cosA.nextInt();
System.out.print("Introduce el numero de columnas: "); //Pidiendo la cantidad de columnas que seran.
columnas = cosA.nextInt();
int[][] matriz = new int[renglones][columnas];
for(i=0; i<renglones; i++)
{
for(j=0; j<columnas; j++)
{
System.out.printf("Introduce el elemento [%d][%d]: ",i, j);
matriz[i][j] = cosA.nextInt();
}
}
//Imprimir resultados de manera normal.
for (i = 0; i < renglones; i++) {
for (j = 0; j < columnas; j++) {
System.out.print(matriz[i][j] + " ");
res = res + matriz[j][i]; }
System.out.print(" - La suma de la columna" +col+ "es: " + res);
System.out.println(); res = 0;col++; }
System.out.println ();
}
}