题目:要求输入两个矩阵求出它们相乘的结果
输入格式:第一行为第一个矩阵的行和列,然后输入这个矩阵,接下来一行输入第二个矩阵的行和列接下来输入第二个矩阵。
输出格式:第三个矩阵
例如:
输入:
输出:
代码如下:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int ai = scanner.nextInt(); // 矩阵a的行
int aj = scanner.nextInt(); // 矩阵a的列
int[][] a = new int[ai][aj];
// 输入矩阵a
for (int i = 0; i < ai; i++) {
for (int j = 0; j < aj; j++) {
a[i][j] = scanner.nextInt();
}
}
// 输入矩阵b
int bi = scanner.nextInt(); // 矩阵b的行
int bj = scanner.nextInt(); // 矩阵b的列
int[][] b = new int[bi][bj];
for (int i = 0; i < bi; i++) {
for (int j = 0; j < bj; j++) {
b[i][j] = scanner.nextInt();
}
}
int[][] c= new int[ai][bj];
// 计算c (c为矩阵a和矩阵b相乘)
// sum为矩阵c中的每一个数
int sum = 0;
// 理解矩阵相乘的规律
// i控制行,j控制列,k为相称想加的参数
for (int i = 0; i < ai; i++) {
for (int j = 0; j < bj; j++) {
for (int k = 0; k < bi; k++) {
sum = sum + a[i][k]*b[k][j];
}
c[i][j] = sum;
sum = 0; // sum初始化
}
}
// 输出矩阵c
for (int i = 0; i < ai; i++) {
for (int j = 0; j < bj; j++) {
System.out.print(c[i][j]+" ");
}
System.out.println();
}
}