import java.io.*; 
import java.util.Random; 
class MatrixOutput 

public int[][] num; 
public int i,j; 
public void output(int n,int m) 

for(i=0;i<n;i++) 
        { 
         for(j=0;j<m;j++) 
         { 
         System.out.print(num[i][j]+" "); 
         } 
         System.out.println(); 
        } 


class Matrix1 extends MatrixOutput 
{  
Matrix1(int n,int m) 

try 

num=new int[n][m]; 
    InputStreamReader isr=new InputStreamReader(System.in); 
            BufferedReader br=new BufferedReader(isr); 
            for(i=0;i<n;i++) 
            for(j=0;j<m;j++) 
            num[i][j]=Integer.parseInt(br.readLine());     //按行输入矩阵的值          
            br.close(); 

catch(IOException e) 

System.out.println(e); 



class Matrix2 extends MatrixOutput 

public Matrix2(int n,int m) 

num=new int[n][m]; 
Random r=new Random(); 
for(i=0;i<n;i++) 
for(j=0;j<m;j++) 
num[i][j]=r.nextInt(100);  //随机产生100以内的数 


class Matrix3 extends MatrixOutput 

public int[][] num1; 
public int[][] num2; 
public int[][] num3; 
public int i,j,k,l; 
public void mul(int[][] num1,int[][]num2) 

num1=new int[i][j]; 
num2=new int[k][l]; 
num3=new int[i][l]; 
if(i==k) 

for(i=0;i<num1.length;i++) 

for(j=0;j<num1[i].length;j++) 

int result=0; 
for(l=0;l<num2[j].length;l++) 

result+=num1[i][j]*num2[k][l]; 

num3[i][l]=result; 





public class Matrix 

public static void main(String[] args) 

System.out.println("按从左到右从上到下输入矩阵:"); 
Matrix1 m1=new Matrix1(3,2); 
System.out.println("则第一个矩阵的值为:"); 
m1.output(3,2); 
Matrix2 m2=new Matrix2(2,4); 
System.out.println("第二个矩阵的值为:"); 
m2.output(2,4); 


各位大侠们 帮我看看 我应该怎么设类Matrix3使得2个矩阵可以相乘,我不知道怎么把那个数组的值传进去 可以帮我看看吗 

解决方案 »

  1.   

    main函数改下
    public class Matrix {
    public static void main(String[] args) {
    System.out.println("按从左到右从上到下输入矩阵:");
    Matrix1 m1 = new Matrix1(3, 2);
    System.out.println("则第一个矩阵的值为:");
    m1.output(3, 2);
    Matrix2 m2 = new Matrix2(2, 4);
    System.out.println("第二个矩阵的值为:");
    m2.output(2, 4);
    Matrix3 m3=new Matrix3();  //实例化Matrix3
    m3.mul(m1.num,m2.num);    //调用mul,并传值
    }
    }