Java - Error al sumar los valores de la filas de una matriz

 
Vista:

Error al sumar los valores de la filas de una matriz

Publicado por Loudwig (1 intervención) el 06/12/2019 04:36:59
Hola, realizando pruebas en mi código encontré un error al momento de sumar los valores que se encuentran en cada fila.
Haciendo mis pruebas de escritorio obtengo algo como lo siguiente:
matriz
Donde en la columna 5 guardo las sumas de los valores de las columnas y la columna 6 guarda la división de la columna [5]/5

El problema ocurre cuando se ejecuta lo siguiente:

La clase principal:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package pfinal11;
 
import java.util.Arrays;
import java.util.Scanner;
 
public class PFinal11 {
 
    public static void main(String[] args) {
        float ahorro[][] = new float[7][7];
        float[][] ver = null;
        Scanner s = new Scanner(System.in);
        Calculos calculo= new Calculos();
 
        for (int i = 0; i < ahorro.length; i++) {
            System.out.println("Dia "+(i+1)+": ");
            for (int j = 0; j < ahorro[0].length-2; j++) {
                System.out.print("Persona "+(j+1)+": ");
                ahorro[i][j] = s.nextFloat();
                ver = calculo.totalDia(ahorro);
            }
        }
 
        System.out.println(Arrays.deepToString(ver));
    }
 
}

La clase secundaria:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package pfinal11;
 
public class Calculos {
    float[][] m = new float[7][7];
 
    float[][] totalDia(float m[][]){
        this.m = m;
 
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < m[0].length-2; j++) {
                m[i][5] += m[i][j];
            }
        }
        return m;
    }
}

El problema es que en la columna 5 retorna valores que desconozco su porqué
[3.0, 3.0, 3.0, 3.0, 3.0, 495.0, 99.0],
[5.0, 6.0, 3.0, 3.0, 3.0, 567.0, 113.4],
[3.0, 3.0, 3.0, 6.0, 8.0, 516.0, 103.2],
[3.0, 3.0, 3.0, 2.0, 4.0, 269.0, 53.8],
[3.0, 3.0, 5.0, 3.0, 2.0, 210.0, 42.0],
[3.0, 3.0, 5.0, 3.0, 4.0, 142.0, 28.4],
[3.0, 4.0, 5.0, 3.0, 4.0, 56.0, 11.2]

Espero su ayuda y sus consejos.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error al sumar los valores de la filas de una matriz

Publicado por pablo (239 intervenciones) el 06/12/2019 13:54:03
Hola Loudwig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Calculos {
    float[][] m = new float[7][7];
    int sumatoria = 0;
    float[][] totalDia(float m[][]){
        this.m = m;
 
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < m[0].length-2; j++) {
               if(i == 0){
                  sumatoria = sumatoria + m[i][j];
                }
            }
        }
        return sumatoria;
    }
}

Podrías intentar eso en tú código para probar si te arroja el resultado esperado, lo que yo pienso es que estas sumando la matriz entera y no la fila como tal por ende te devuelve esos resultados tan amplios que tienes.

En el if yo agregaría una variable que se vaya autoincrementando o que disminuya para poder recorrer adecuadamente todas las filas que tienes.

Quedo atento a tus comentarios.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar