JAVA自学之每日一题(四)
2016-07-02 15:02
441 查看
题目要求:不定大小的矩阵乘法运算
package 矩阵相乘; import java.util.Scanner; public class MatrixMultiplication { public static void main(String[] args) { Scanner input = new Scanner(System.in); int size_row_first, size_col_first;// 第一个矩阵的大小 int size_row_second, size_col_second;// 第二个矩阵的大小 System.out.print("请输入第一个矩阵的大小:"); size_row_first = input.nextInt(); size_col_first = input.nextInt(); System.out.print("请输入第二个矩阵的大小:"); size_row_second = input.nextInt(); size_col_second = input.nextInt(); if (size_col_first != size_row_second)// 检测矩阵是否合法 { System.out.println("矩阵不合法"); } double[][] first = new double[size_row_first][size_col_first];// 创建第一个矩阵 double[][] second = new double[size_row_second][size_col_second];// 创建第二个矩阵 double[][] result = new double[size_row_first][size_col_second];// 创建结果矩阵 // 调用输入函数 System.out.println("请输入第一个矩阵:"); input(first, size_row_first, size_col_first); System.out.println("请输入第二个矩阵:"); input(second, size_row_second, size_col_second); // 调用乘法计算函数 result = multiplyMatrix(first, second, size_row_first, size_col_second,size_col_first); // 调用输出函数 System.out.println("计算结果为:"); output(first, size_row_first, size_col_first); System.out.println("×"); output(second, size_row_second, size_col_second); System.out.println("="); output(result, size_row_first, size_col_second); } public static void input(double[][] a, int row, int col)// 输入函数 { Scanner input=new Scanner(System.in); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { a[i][j]=input.nextDouble(); } } } public static void output(double[][] a, int row, int col)// 输出函数 { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { System.out.printf("%4.2f",a[i][j]); System.out.print(" "); } System.out.print('\n'); } } public static double[][] multiplyMatrix(double[][] a, double[][] b,int row, int col, int same_size)// 乘法计算函数 { double[][] c = new double[row][col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { double temp = 0; for (int k = 0; k < same_size; k++) temp = temp + a[i][k] * b[k][i]; c[i][j] = temp; } } return c; } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树