java第四周 任务四 用二维数组表示矩阵,实现矩阵乘法
/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:用二维数组表示矩阵,实现矩阵乘法 * 作 者:薛广晨 * 完成日期:2011 年 09 月 18 日 * 版 本号:x1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: 用二维数组表示矩阵,实现矩阵乘法。* 如C=A*B,要考虑矩阵相乘的规则,即A矩阵和B矩阵是任意的,* C矩阵的产生是自动的(C的行数和列数要自动判断生成?怎样得到C矩阵的的行数和列数?)* 程序输出: * 程序头部的注释结束 */package xgc.com;public class TestMatrixPlus {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[][] a={{1,4,5,6},{7,2,10,11},{8,9,12,3}};//自己定义矩阵int[][] b={{1,4,5,6},{7,2,10,11},{8,9,12,3}};//自己定义矩阵printMatrix(a,b);}static void printMatrix(int[][] a,int[][] b){//1.要判断矩阵能否相乘,能相乘继续,不能相乘给出提示为什么不能相乘//2.得到C矩阵的行数和列数,以产生C矩阵int c[][] = new int[a.length][a[0].length];if(a.length == b.length ){for(int i = 0; i < a.length; i++){if(a[i].length != b[i].length){System.out.println("两矩阵列数不同,不能相乘");return;} }for(int i = 0; i < a.length; i++){for(int j = 0; j < a[i].length; j++){c[i][j] = a[i][j] * b[i][j];} }}else{System.out.println("两矩阵行数不同,不能相乘");return;}//3.输出结果矩阵C的值for(int i = 0; i < c.length; i++){for(int j = 0; j < c[i].length; j++){System.out.print(c[i][j] + " ");}System.out.println(); }}}
运行结果: