Autor Tema: Java Conocer número de filas y columnas en matriz de enteros y sumar filas  (Leído 7130 veces)

r2montero

  • Sin experiencia
  • *
  • Mensajes: 40
    • Ver Perfil
Saludos a tod@s!

Tengo un problema con un ejercicio de matrices, que pide lo siguiente:

Un método llamado sumaAcumCol, que retorna true si para todas las filas,
en la última columna se encuentra la suma de los valores enteros de dicha
fila. En caso contrario retorne false.
Por ejemplo:



3+10+1=14
0+2+2  = 4
7+5+8 = 20
10+2+11 = 23

En este caso, el método retornaría true.

Este es el código que tengo hasta ahora, pero aunque la última columna no sea la suma de la fila me indica true.

Código: [Seleccionar]
public class SumaCol {
 
  public static void main(String[] args){
   
    int[][] intMatrix = {{3, 10, 1, 14}, {0, 2, 2, 4}, {7, 5, 8, 20}, {10, 2, 11, 23}};
   
    boolean sumOK = false;
    int sumaAcum = 0;
    int colValue = 0;
   
    for(int row = 0; row < intMatrix.length; row++) {
      colValue = intMatrix[row][intMatrix[row].length - 1];
      for(int column = 0; column < intMatrix[row].length - 1; column++){
        sumaAcum += intMatrix[row][column];
       
        if(sumaAcum == colValue) {
          sumOK = true;
                }
            }
            sumaAcum = 0;
        }
   
    System.out.println(sumOK);
 
  }
 
}

Todos sus consejos y sugerencias serán de muchísima utilidad.
« Última modificación: 10 de Septiembre 2015, 12:27 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Java Conocer número de filas y columnas en matriz de enteros y sumar filas
« Respuesta #1 en: 10 de Septiembre 2015, 12:31 »
Hola!

En el código tienes problemas con la algoritmia (planteamiento del algoritmo de resolución) y con los índices a emplear con la matriz.

En este curso se explica algoritmia y bases de la programación: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

El código corregido (si no me he equivocado) sería el siguiente:

Código: [Seleccionar]
public class SumaCol {

    public static void main(String[] args){
        int[][] intMatrix = {{3, 10, 1, 14}, {0, 2, 2, 44}, {7, 5, 8, 20}, {10, 2, 11, 23}};
        int numeroDeFilas = intMatrix.length;
        int numeroDeColumnas = intMatrix[0].length;
        boolean sumaOK = true;
        int sumaAcum = 0;
        int columnaSuma = 0;

        for(int row = 0; row < numeroDeFilas; row++) {
            columnaSuma = intMatrix[row][numeroDeColumnas - 1];
            for(int column = 0; column < numeroDeColumnas-1; column++){
                sumaAcum = sumaAcum + intMatrix[row][column];
                System.out.print(" "+intMatrix[row][column] + " + ");

            }
            System.out.print ("0 = " + columnaSuma + " ? \n\n");
            if(sumaAcum == columnaSuma) {
                // Todo correcto
            } else {System.out.println ("Detectada columna que no cumple \n");
                sumaOK = false;}
            sumaAcum = 0;
        }
        System.out.println("¿Cumplen todas las filas el criterio: "+sumaOK);
    }
}

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

r2montero

  • Sin experiencia
  • *
  • Mensajes: 40
    • Ver Perfil
Re:Java Conocer número de filas y columnas en matriz de enteros y sumar filas
« Respuesta #2 en: 11 de Septiembre 2015, 16:00 »
Muchas gracias por la ayuda Cesar!

Voy a revisarlo y también el enlace.

Saludos!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".