package 矩阵乘法;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int m,n,p,q,temp=0;
//输入的四个数分别为两个矩阵的行数和列数
System.out.println("分别输入两个矩阵的行和列数:");
m = input.nextInt();
n = input.nextInt();
p = input.nextInt();
q = input.nextInt();
//判断是否符合题设a1的列数与a2的行数相同的要求
if(n!=p) {
System.out.println("ERROR");
}
//定义两个起始二维数组和一个结果数组
int[][] a1 = new int[m][n];
int[][] a2 = new int[p][q];
int[][] a3 = new int[n][p];
//输入两个二维数组
System.out.println("数组1:");
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
a1[i][j] = input.nextInt();
}
}
System.out.println("数组2:");
for(int i=0;i<p;i++) {
for(int j=0;j<q;j++) {
a2[i][j] = input.nextInt();
}
}
//运算
for(int i=0;i<m;i++) {
for(int j=0;j<q;j++) {
for(int k=0;k<n;k++) {//引入k,用k控制,如果仅是用i和j,后面赋值给a3的时候位置顺序会错乱
a3[i][j] +=a1[i][k]*a2[k][j]; //累加直至跳出此层循环得到结果
}
}
}
//输出
System.out.println("运算结果:");
for(int i=0;i<m;i++) {
for(int j=0;j<m;j++) {
System.out.print(a3[i][j]+" ");
}
System.out.println();
}
}
}
矩阵乘法
最新推荐文章于 2025-01-14 16:02:07 发布