具有1-D阵列的矩阵运算

时间:2017-04-19 05:04:57

标签: java arrays methods indexoutofboundsexception

这里有两种方法可以将两个1-D数组相乘,每个数组包含5个整数,并显示生成的2-D(5x5)数组。不幸的是,我没有得到我希望的结果,因为我得到一个ArrayIndexOutOfBoundsException。我查看了我的代码以查找错误,但似乎无法找到错误。该错误消息还告诉我错误发生在mult[i][j] = array1[i]*array2[j];语句。

public static int [][]  matrixMult(int [] array1, int [] array2){

    int [][] mult = new int [imax][jmax];
    int i = 0;
    int j = 0;

    while(i < imax){
        while(j < jmax){

            mult[i][j] = array1[i]*array2[j];

            if(j == jmax-1){

                i++;
                j = 0;

            }else{

                j++;
            }
        }
    }

    return mult;
}

public static void print2DArray(int array[][]){

    int i = 0;
    int j = 0;

    while(i < imax){
        while(j < jmax){

            System.out.print("(" + i + ", " + j + ")   " + array[i][j]);

            if(j == jmax-1){

                i++;
                j = 0;

            }else{

                j++;
            }

        }
    }
}

1 个答案:

答案 0 :(得分:1)

你应该在c = [1,2] a = [[1,2], [3,4], [3,2]] k=max(max(map(lambda x:set(c)-set(x),a))) print k if k else 0 时打破内循环,否则在下一次迭代中j == jmax-1将变为5,这将给你ArrayIndexOutOfBoundsException。

i
相关问题