1.需求
输入一个 m*n的矩阵 和一个n*p的矩阵,要求打印出两个矩阵的乘积。
2.代码运行结果:
3.代码
public static void main(String[] args) {
//1、输入矩阵
System.out.println("请输入一个3*2的矩阵:");
Scanner scanner = new Scanner(System.in);
int[][] mn = new int[3][2];
//1)输入一个m*n矩阵
//i控制行,j控制列
for (int i = 0; i < mn.length; i++) {
for (int j = 0; j < mn[i].length; j++) {
mn[i][j] = scanner.nextInt();
}
}
for (int i = 0; i < mn.length; i++) {
System.out.println(Arrays.toString(mn[i]) + " ");
}
//1)输入一个n*n矩阵
System.out.println("请输入一个2*2的矩阵:");
int[][] nn = new int[2][2];
//i控制行,j控制列
for (int i = 0; i < nn.length; i++) {
for (int j = 0; j < nn[i].length; j++) {
nn[i][j] = scanner.nextInt();
}
}
for (int i = 0; i < nn.length; i++) {
System.out.println(Arrays.toString(nn[i]) + " ");
}
//2、两矩阵相乘
product(mn, nn);
}
private static void product(int[][] mn, int[][] nn) {
int[][] product = new int[mn.length][mn[0].length];
//p(00) = mn(00)*nn(00) + mn(01)*n(10)
for (int i = 0; i < mn.length; i++) {
for (int j = 0; j < mn[i].length; j++) {
for (int k = 0; k < nn.length; k++) {
product[i][j] += mn[i][k]*nn[k][j];
}
}
}
for (int i = 0; i < product.length; i++) {
System.out.println("product=" + Arrays.toString(product[i]));
}
}