7-9 使用二维数组实现Matrix(矩阵)。

使用二维数组实现Matrix(矩阵)。

  1. 定义Matrix(矩阵)类,要求如下:
    a) 变量:matrix(int型二维数组),row(行数),column(列数);
    b) 方法:实现两个矩阵的乘法,所有方法将返回操作后的结果矩阵。(两个矩阵的乘法:一个m×n的矩阵a(m,n)乘一个n×p的矩阵b(n,p),会得到一个m×p的矩阵c(m,p)。矩阵的行数和列数自定。)
    c) 定义构造方法。

  2. 编写主类,测试Matrix类。包括:构建对象,测试每一个方法,并将测试结果输出到屏幕上。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
        int m,n,q;
        m=input.nextInt();
        n=input.nextInt();
        int a[][]=new int[m][n];
        for(int i=0;i<m;i++)
            for(int j=0;j<n;j++)
                a[i][j]=input.nextInt();
        
        n=input.nextInt();
        q=input.nextInt();
        int b[][]=new int[n][q];
        for(int i=0;i<n;i++)
            for(int j=0;j<q;j++)
                b[i][j]=input.nextInt();
        int c[][]=new int[a.length][b[0].length];
        jzmultiply (a ,b);
        
	}
    public static int[][] creatjz ()
	{
		Scanner scan=new Scanner(System.in);
		int a = scan.nextInt();
		int b = scan.nextInt();
		int[][] jz = new int[a][b];
		int i,j;
		
		for(i=0;i<a;i++)
		{
			for(j=0;j<b;j++)
			{
				jz[i][j]=scan.nextInt();
			}
		}
		return jz;
	}
	
    public static void jzmultiply (int[][] a ,int[][] b)
	{
		int[][] sum = new int [a.length][b[0].length];
		int i, j, k;
		
		for(i = 0; i < a.length; i++ )
		{
			for(j = 0; j < b[0].length; j++)
			{
				for(k = 0;k < b.length; k++)
				{
					sum[i][j] =sum[i][j] + a[i][k] * b[k][j];
				}
				 
			}
		}
		printjz(sum,a.length,b[0].length);
	}
     public static void printjz(int[][] sum,int m,int q)
    {
		 int i, j;
         for( i=0; i<m; i++)
         {
             for( j=0; j<q; j++)
            {
                 System.out.print(sum[i][j]+" ");
             }//必须要带括弧啊,一句话也要带
           System.out.println();	
         }
		}
    
}

但是这里我把输入写成函数的话pta就过不了,但是eclipse里测试结果正确,求指点

public static void main(String[] args) {
		int[][] a = creatjz();
		int[][] b = creatjz();
		jzmultiply(a ,b);
		
	}
public static int[][] creatjz ()
	{
		Scanner scan=new Scanner(System.in);
		int a = scan.nextInt();
		int b = scan.nextInt();
		int[][] jz = new int[a][b];
		int i,j;
		
		for(i=0;i<a;i++)
		{
			for(j=0;j<b;j++)
			{
				jz[i][j]=scan.nextInt();
			}
		}
		return jz;
	}

版权声明:本文为Catherinezxc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。