【问题标题】:Sum elements in a matrix对矩阵中的元素求和
【发布时间】:2018-04-17 05:22:18
【问题描述】:

我正在尝试对矩阵中单行的所有元素求和,我很确定这会输出一条错误消息(索引超出范围),因为我以前在 Python 中总是犯过这个错误。我也想对循环中的元素求和! (这个矩阵有单列和 X 行。对不起,我没有澄清)

public class cls_ejercicio7_d {
    private int tamaño;
    private String[] lista_nombres;
    private double[][] lista_kilometraje;

    public cls_ejercicio7_d(int tamaño, String lista_nombres[], double lista_kilometraje[][]) {
        this.lista_kilometraje = lista_kilometraje;
        this.lista_nombres = lista_nombres;
        this.tamaño = tamaño;
    }

    public double[][] resultados(int tamaño, String lista_nombres[], double lista_kilometraje[][]) {
        double total;
        double[][] lista_totales = new double[tamaño][1];
        for (int i = 0; i < tamaño; i++) {
            for (int j = 0; j < tamaño; j++) {
                total = lista_kilometraje[i][j] + lista_kilometraje[i][j + 1];
                lista_totales[i][j] = total;
            }
        }
        return lista_totales;
    }
}

【问题讨论】:

    标签: java matrix


    【解决方案1】:

    代替

     double [][]lista_totales=new double[tamaño][1];
    

     double [][]lista_totales=new double[tamaño][tamaño];
    

     for (int j = 0; j < tamaño; j++) {
                    total+=lista_kilometraje[i][j];
                }
                lista_totales[i][1]=total;
    

    【讨论】:

    • 这个矩阵有单列和 X 行。对不起,我没有澄清。
    • 谢谢,我完全忘记了,哈哈,我疯了
    【解决方案2】:

    错误来自这一行:

    总计=lista_kilometraje[i][j]+lista_kilometraje[i][j+1];

    您正在接受j+1。假设您的矩阵有 8 列,因此对于这一列,它将尝试检索 j[8] 这是错误的,因为 J 只有索引 7。

    还有lista_totales = [tamaño][1]的大小

    lista_totales[i][j] 也会抛出异常。

    你可能想改成下面:

    public double [][] resultados(int tamaño,String lista_nombres[],double lista_kilometraje[][]){
        double total;
        double [][]lista_totales=new double[tamaño][1];
        for (int i = 0; i < tamaño; i++) {
            total = 0 ; 
            for (int j = 0; j < tamaño; j++) {
                total+=lista_kilometraje[i][j];
            }
            lista_totales[i][1]=total;
        }
        return lista_totales;
    }
    

    【讨论】:

    • 是的! @nimi0112,我也知道了,我完全忘记了哈哈非常感谢你
    • 你需要每次为第一个循环重置total=0 :)
    【解决方案3】:

    下一行有问题

    total = lista_kilometraje[i][j] + lista_kilometraje[i][j + 1];
    

    在这个你的 j 循环中迭代到 j

    你也可以试试 for 循环

    j < tamaño-1
    

    【讨论】:

      猜你喜欢
      • 2011-12-28
      • 2019-08-24
      • 2017-03-05
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      相关资源
      最近更新 更多