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;
}

}
}

22 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
  6. Y como se hace si necesito sacar ademas el mayor por cada fila?

    ResponderEliminar
    Respuestas
    1. En el apartado donde se suman las filas puedes consultar el mayor. Puedes utilizar una condicional y una variable para almacenar el resultado. Saludos.

      Eliminar
  7. Alguien puede ayudarme: necesito sumar dos matrices y al resultado de esta matriz sacar su transpuesta me ayudan con la codificación en java verbenas

    ResponderEliminar
  8. que mas amigo, me pregunto si me pedes ayudar con el siguiente ejercicio:
    Crear una matriz de 5×5 de números enteros. Para rellenar la matriz, pedírselo al usuario por teclado. Se requiere hacer un menú que contenga las siguientes opciones:

    Suma de una fila que se pedirá al usuario por teclado, sino es valida la fila ingresada se debe controlar.
    Suma de una columna que se pedirá al usuario por teclado, sino es valida la columna ingresada se debe controlar
    Sumar la diagonal inversa

    ResponderEliminar
    Respuestas
    1. Que tal. Podrías mirar el ejercicio "Java básico 037" del blog. Te puede servir para el ejercicio. Saludos.

      Eliminar
  9. como hacer para que muestre la suma mayor entre la primera columna y la ultima

    ResponderEliminar
    Respuestas
    1. Entiendo que solo muestre el mayor entre la primera y la última columna. Solo se me ocurre una condicional. Primera columna será cuando i=0 y la última cuando i = num.length -1.

      Eliminar