两矩阵可相乘的条件是第一个矩阵的列和第二个矩阵的行相等
输入三个整数分别代表1行,1列2行,2列
接着输入矩阵······输出相乘后矩阵
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a,b,c,x[][],y[][],z[][];
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
x=new int[a][b];
y=new int[b][c];
z=new int[a][c];
for(int i=0;i<a;i++)
{for(int j=0;j<b;j++)
x[i][j]=in.nextInt();}
for(int i=0;i<b;i++)
{for(int j=0;j<c;j++)
y[i][j]=in.nextInt();}
z=mul(x,y);
print(z);
}
static int[][] mul(int x[][],int y[][])//有static才能被main调用
{
int i,j,k;//循环控制变量
//结果数组,行、列数分别是x.length和y[0].length
int z[][]=new int[x.length][y[0].length];
//y.length代表y的行数,y[0].length代表该行的数字个数
//x每一行都与y的每一列相乘
for(i=0;i<x.length;i++)
//x的第i行与y的第j列相乘
for(j=0;j<y[0].length;j++)
{
z[i][j]=0;
//x的第i行与y的第j列相乘
for(k=0;k<x[0].length;k++)
z[i][j]=z[i][j]+x[i][k]*y[k][j];
}
return z;//返回相乘结果
}
static void print(int x[][])
{
int i,j;
for(i=0;i<x.length;i++)
{
for(j=0;j<x[i].length;j++)
System.out.printf("%5d", x[i][j]);
System.out.println();
}
}
}