Java básico 034. Arrays bidimensionales. Suma de Filas y Columnas.

Ejercicio: Crear y cargar una tabla de tamaño 3x3, mostrar la suma de cada fila y de cada columna.
Código Java
import java.util.Scanner;



/**
*
* @author Ariel
*/

public class Bidimensional {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
int[][] num = new int[3][3];
Scanner numero = new Scanner(System.in);
System.out.println("Ingrese los números.");
for (int i = 0; i < num.length; i++) {//Dimensión Uno.
for (int j = 0; j < num.length; j++) {//Dimensión Dos.
num[i][j]=numero.nextInt();
}
}
System.out.println("Imprimiendo Tabla.");
for (int i = 0; i < num.length; i++) {
System.out.println();
for (int j = 0; j < num.length; j++) {
System.out.print(num[i][j] + " ");
}
}

System.out.println("\nSuma Fila.");
int suma=0;
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num.length; j++) {
suma += num[i][j];
}
System.out.println("Fila " + i + " =" + suma);
suma=0;
}
System.out.println("\nSuma Columna");
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num.length; j++) {
suma += num[j][i];
}
System.out.println("Columna " + i + " =" + suma);
suma=0;
}

}
}

15 comentarios :

  1. Y si el arreglo fuera por ejemplo num[2][3]? se puede?

    ResponderEliminar
    Respuestas
    1. Se puede, el segundo for tendrá que ir de la siguiente forma num[i].length. Saludos

      Eliminar
  2. y si quisera la suma total fila por fila?

    ResponderEliminar
    Respuestas
    1. Solo tienes que sacar esta porción suma=0; y te dará la suma total. Saludos.

      Eliminar
    2. La que esta debajo de System.out.println("Fila " + i + " =" + suma); La impresión tendras que hacerla fuera del bloque. Saludos.

      Eliminar
  3. Respuestas
    1. Que tal. Que especificamente quieres hacer. Saludos.

      Eliminar
    2. Puedes hacerlo cambiando el "for" en la parte de la impresión (los calculo no tendrián que variar) de tal modo que te muestre los datos empezando por el último elemento. For invertido.
      for (int i = 10; i > 0; i--) {
      System.out.println("- " + i);
      }
      Saludos.

      Eliminar
  4. Y como le podría hacer para sacar el número mayor de la suma de los elementos de cada fila, me refiero a que saco el resultado de la suma de cada fila, y de ahí mostrar el número mayor de esos resultados, no se si me dí a entender, gracias

    ResponderEliminar
    Respuestas
    1. La forma más rápida podría ser, guardar la suma de cada fila en otro array y comprobar después cual es el mayor. Recorriendo cada indice y verificando con una condicional cual es el mayor. O la más fácil, poner la condicional antes de System.out.println("Fila " + i + " =" + suma);. Saludos.

      Eliminar
    2. muchas gracias, efectivamente así era, no se me había ocurrido de esa forma, todo lo mandaba a imprimir directo en la variable, de nuevo gracias y saludos, buen post...

      Eliminar
  5. Por qué es necesario volver a inicializar la suma en 0.

    System.out.println("Columna " + i + " =" + suma);
    ---------------> suma=0;

    ResponderEliminar
    Respuestas
    1. Que tal. La variable "suma" almacena solo la suma de columnas y filas. Si no no se vuelve a inicializar a 0 al terminar el ciclo del for interno va a sumar todas la columnas y todas las filas, pués está dentro de un for anidado. Saludos.

      Eliminar