Java输入两个矩阵判断是否可以相乘,若可以,则输出相乘结果

package com.cn;
import java.util.Scanner;
public class Juzhenxiangcheng {

public static void main(String[] args) {
	// TODO Auto-generated method stub

	Scanner s = new Scanner( System.in );
	System.out.println("请输入第一个矩阵的行数和列数:");
	int x1=s.nextInt();
	int y1=s.nextInt();
	double[][] arr1=new double[x1][y1];
	System.out.println("请输入第一个矩阵:");
	for(int i=0;i<x1;i++)
		for(int j=0;j<y1;j++)
			arr1[i][j]=s.nextDouble();
	
	System.out.println("请输入第二个矩阵的行数和列数:");
	int x2=s.nextInt();
	int y2=s.nextInt();
	double[][] arr2=new double[x2][y2];
	System.out.println("请输入第二个矩阵:");
	for(int i=0;i<x2;i++)
		for(int j=0;j<y2;j++)
			arr2[i][j]=s.nextDouble();
	zhen(arr1,arr2);
}

public static double[][] zhen(double arr1[][], double arr2[][]) {
	if(arr1[0].length!=arr2.length) {
		System.out.println("两个向量不能相乘");
		return null;
	}
	else{
		System.out.println("两个向量向量可以相乘");
		double[][] arr3=new double[arr1.length][arr2[0].length];
		for(int i=0;i<arr1.length;i++) {
			for(int j=0;j<arr2[0].length;j++)
				for(int t=0;t<arr1[0].length;t++) 
				    arr3[i][j]=arr3[i][j]+arr1[i][t]*arr2[t][j];
	    }
		for(int i=0;i<arr1.length;i++) {
			for(int j=0;j<arr2[0].length;j++)
				System.out.print(arr3[i][j]+" ");
			System.out.println();
		}
	return arr3;
	}
}

}

发布了5 篇原创文章 · 获赞 0 · 访问量 204

猜你喜欢

转载自blog.csdn.net/weixin_46424591/article/details/104815045