这是什么问题?有人解答一下吗?

img

import java.util.Scanner;

class home {
    private int[][] a;
    private int[][] b;
    private int x, y, x1, y1;

    public void assignment() {
        home r = new home();
        Scanner reader = new Scanner(System.in);
        System.out.println("请输入两个矩阵的行数和列数");
        System.out.print("第一个矩阵行数为:");
        x = reader.nextInt();
        System.out.print("第一个矩阵列数为:");
        y = reader.nextInt();
        System.out.print("第二个矩阵行数为:");
        x1 = reader.nextInt();
        System.out.print("第二个矩阵列数为:");
        y1 = reader.nextInt();
        a = new int[x][y];
        b = new int[x1][y1];
        System.out.println("请输入第一个矩阵中的数据");
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < y; j++) {
                a[i][j] = reader.nextInt();
            }
        }
        System.out.println("第一个矩阵为:");
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < y; j++) {
                System.out.print(a[i][j] + "\t");
            }
            System.out.println();
        }
        System.out.println("请输入第二个矩阵中的数据");
        for (int i = 0; i < x1; i++) {
            for (int j = 0; j < y1; j++) {
                b[i][j] = reader.nextInt();
            }
        }
        System.out.println("第二个矩阵为:");
        for (int i = 0; i < x1; i++) {
            for (int j = 0; j < y1; j++) {
                System.out.print(b[i][j] + "\t");
            }
            System.out.println();
        }
        System.out.println("请选择对矩阵的运算:1加法,2减法,3转置,4乘积");
        int operation = reader.nextInt();
        for (; operation != 1 && operation != 2 && operation != 3 && operation != 4; ) {
            System.out.println("输入错误,请重新输入");
            operation = reader.nextInt();
        }
        if (operation == 1) {
            System.out.println("两个矩阵相加为:");
            int[][] c = r.add(a,b,x,y,x1,y1);
            if (c != null) {
                r.print(c, x, y);
            }
        } else if (operation == 2) {
            System.out.println("两个矩阵相减为:");
            int[][] c = r.jian(a,b,x,y,x1,y1);
            if (c != null) {
                r.print(c, x, y);
            }
        } else if (operation == 3) {
            int[][] c = r.turn(a, x, y);
            int[][] d = r.turn(b, x1, y1);
            System.out.println("a矩阵转置为:");
            r.print(c, x, y);
            System.out.println("b矩阵转置为:");
            r.print(d, x, y);
        } else {
            System.out.println("两个矩阵相乘为:");
            int[][] c = r.cheng(a,b,x,y,x1,y1);
            if (c != null) {
                r.print(c, x, y);
            }
        }
    }

    private int[][] add(int [][]a,int [][]b,int x,int y,int x1,int y1) {
        if (x == x1 && y == y1) {
            int [][]c = new int[x][y];
            for (int i = 0; i < x; i++) {
                for (int j = 0; j < y; j++) {
                    c[i][j] = a[i][j] + b[i][j];
                }
            }
            return c;
        } else {
            System.out.println("两个数组不能相加,因为a b不是同型数组");
            return null;
        }
    }

    private int[][] jian(int [][]a,int [][]b,int x,int y,int x1,int y1) {
        if (x == x1 && y == y1) {
            int[][] c = new int[x][y];
            for (int i = 0; i < x; i++) {
                for (int j = 0; j < y; j++) {
                    c[i][j] = a[i][j] - b[i][j];
                }
            }
            return c;
        } else {
            System.out.println("两个数组不能相减,因为a b不是同型数组");
            return null;
        }
    }

    private int[][] turn(int[][] a, int x, int y) {
        int[][] c = new int[x][y];
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < y; j++) {
                c[j][i] = a[i][j];
            }
        }
        return c;
    }

    private int[][] cheng(int [][]a,int [][]b,int x,int y,int x1,int y1) {
        if (y==x1) {
            int[][] c = new int[x][y1];
            for (int i = 0; i < x; i++) {
                for (int j = 0; j < y1; j++) {
                    int sum = 0;
                    for (int k = 0; k < y; k++) {
                        sum += a[i][k] * b[k][j];
                    }
                    c[i][j] = sum;
                }
            }
            return c;
        } else {
            System.out.println("两个数组不能相乘,因为a数组的列数不等于b数组的行数");
            return null;
        }
    }

    private void print(int [][]c, int x, int y) {
        System.out.println("x:"+c.length);
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < y; j++) {
                System.out.print(c[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

public class Test {
    public static void main(String[] args) {
        home r = new home();
        r.assignment();
    }
}

你可以把代码贴出来