6-2 编写Matrix类,使用二维数组实现矩阵,实现两个矩阵的乘法。 (30分) java pta
编写程序题, 根据要求编写一个Java类,补充到代码中。 定义Matrix(矩阵)类,使用二维数组实现矩阵,实现两个矩阵的乘法。要求如下:
- 4个变量:row(行数),column(列数), matrix( int型二维数组),reader( Scanner对象)。
- 根据程序需求定义构造方法。
- inputMatrix方法:从键盘读入一个矩阵,读入行数和列数,创建矩阵,然后读入元素值方法。
- multiply方法:两个矩阵相乘,并返回乘积矩阵。
(两个矩阵的乘法:一个m×n的矩阵a(m,n)乘一个n×p的矩阵b(n,p),会得到一个m×p的矩阵c(m,p)。矩阵的行数和列数自定。)
方法声明:
public static Matrix inputMatrix(); //从键盘读入一个矩阵,并返回矩阵
Matrix multiply(Matrix mat); //两个矩阵相乘,并返回乘积矩阵。
裁判测试程序样例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Matrix firstMat=Matrix.inputMatrix();
Matrix secondMat=Matrix.inputMatrix();
//display(firstMat.matrix); display(secondMat.matrix);
Matrix productMat=firstMat.multiply(secondMat);
display(productMat.matrix);
}
//display方法:打印二维数组元素到屏幕
public static void display(int[][] array){
for(int i=0; i<array.length; i++){
for(int j=0; j<array[i].length; j++){
if(j==array[i].length-1) {
System.out.println(array[i][j]);
}
else {
System.out.print(array[i][j]+" ");
}
}
}
}
}
/* 请在这里填写答案 */
输入样例:
2 2
1 2
3 4
2 2
2 3
4 5
输出样例:
在这里给出相应的输出。例如:
10 13
22 29
class Matrix{int row,column;int matrix[][];static Scanner reader=new Scanner(System.in);static Matrix inputMatrix() {Matrix mat = new Matrix();mat.row=reader.nextInt();mat.column=reader.nextInt();mat.matrix=new int [mat.row][mat.column];for(int i=0;i<mat.row;++i) {for(int j=0;j<mat.column;++j) {mat.matrix[i][j]=reader.nextInt();}}return mat;}Matrix multiply(Matrix B) {int columnB=B.matrix[0].length;Matrix ans =new Matrix();ans.matrix=new int[row][columnB];for(int i=0;i<row;++i) {for(int j=0;j<columnB;++j) {for(int k=0;k<column;++k) {ans.matrix[i][j]+=matrix[i][k]*B.matrix[k][j];}}}return ans;}
}
6-2 编写Matrix类,使用二维数组实现矩阵,实现两个矩阵的乘法。 (30分) java pta相关推荐
- 利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu
利用二维数组(double[])实现一个矩阵类:Matrix.要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu ...
- c# 怎样从bitmap初始化image类_C#二维数组初始化概括(新手篇)
群友反馈的一个问题: 运行报错: 这个主要是数组定义的有问题,二维数组初始化:如下这样 string[,] aaa = new string[10, 10]; 其次得确保data在截取Substrin ...
- python课程设计矩阵对角线之和_Python二维数组实现求出3*3矩阵对角线元素的和示例...
Python二维数组实现求出3*3矩阵对角线元素的和示例 题目:求一个3*3矩阵对角线元素之和. 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出. def two_dime ...
- c语言二维数组中的周边,【C语言】二维数组中的查找,杨氏矩阵
//二维数组中的查找,杨氏矩阵 //在一个二维数组中,每行都依照从左到右的递增的顺序排序.每列都依照从上到下递增的顺序排序. //请完毕一个函数.输入这种一个数组和一个数,推断数组中是否包括这个数. ...
- Arrays工具类和二维数组
一.数组的更多内容 1.1 Arrays工具类 JDK提供的java.util.Arrays工具类,包含了常用的数组操作,方便我们日常开发.Arrays类包含了:排序.查找.填充.打印内容等常见的操作 ...
- java上三角数组_二维数组的三角填充 两种java实现的方法
类似这种: 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 认为第二种方法简单还是第一种方法简单直接决定了你的水平. package test; /** * 二维数组 三角填充 ...
- 二维数组中的查找(两种解法,各有千秋)
凡事都有可能,永远别说永远.--<放牛班的春天> 今天一题为再一个行列都有序的二维数组中寻找一个目标值,我们第一时间想到的可能是很暴力的解法,例如从头到尾进行遍历,这样能做出来,但是借用武 ...
- python螺旋打印二维数组_Python使用迭代器打印螺旋矩阵的思路及代码示例
import itertools def spiral(n,m): _status = itertools.cycle(['right','down','left','up'])#用于状态周期性的切换 ...
- php 两个二维数组对比,php比较两二维数组求大神指教
如: $grade = Array ( [0] => Array ( [course_name] => 大学英语(综合)-1 [course_strid] => College En ...
最新文章
- python datetime timedelta函数_Python Pandas DatetimeIndex.to_perioddelta()用法及代码示例
- Codevs 3134 Circle
- MOCTF-Web-还是水题
- Android build.gradle(app)介绍
- java中不能定义为变量名称_Java,“变量名”不能解析为变量
- RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN驱动+CANopen协议
- 2017.8.17实操总结
- python的opencv库_Python使用OpenCV
- 力扣—— 295. 数据流的中位数(困难)
- Atitit. 构造ast 语法树的总结attilax oao
- chrome扩展程序安装_如何在Windows上删除“由企业策略安装”的Chrome扩展程序
- 产品文档 | PRD写作手册
- Pytorch学习笔记——Momentum
- git 上查找一行代码的提交记录
- Web前端和后端的异同
- Android 4.4 kitkat以上及以下根据uri获取路径的方法
- spacy中en_core_web_sm安装问题
- P1827 [USACO3.4] 美国血统 American Heritage
- php imap 库_php imap_open 实例教程
- AndroidStudio 制作一个超简易记账本App(1.0)【含详细步骤】
热门文章
- HDU 1846 Brave Game 巴什博弈 SG打表
- IT架构师介绍-软件架构设计学习第一天(非原创)
- 开机动画适配方案_高通平台刷机包定制方案适配-ROM定制开发入门到精通
- 什么要使用克隆、如何实现克隆对象、序列化与反序列实现克隆的好处、深拷贝与浅拷贝
- 华为5G小基站拆解:美国零部件占比仅剩1%
- 山区灭火机器人_中国小伙研发灭火机器人,还获得25项国家专利,6个月赚400多亿...
- 更听话的温室大棚系统-阿里云ioT Studio实现动态业务逻辑
- [课设]烟台大学课程表app
- office VBA 用户窗体 控件 单元格 参数的用法与注解
- remote: The project you were looking for could not be found. 解决git clone不下来的方法之一