我试图将矩阵中单行的所有元素相加,我很确定这会输出一条错误消息(索引超出范围),因为我之前在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;
}
}
答案 0 :(得分: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;
答案 1 :(得分:1)
错误来自这一行:
总= 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;
}
答案 2 :(得分:1)
以下行有问题
total = lista_kilometraje[i][j] + lista_kilometraje[i][j + 1];
在这个你的j循环迭代到j&lt; n,对于最后一次迭代,您尝试访问j + 1,以便索引不存在。
要么你可以尝试进行循环
j < tamaño-1