利用二维数组实现一个矩阵类:Matrix。要求提供以下操作:

(1)set(int row, int col, double value):将第row行第col列的元素赋值为value;

(2)get(int row,int col):取第row行第col列的元素;

(3)width():返回矩阵的列数;

(4)height():返回矩阵的行数;

(5)Matrix add(Matrix b):返回当前矩阵与矩阵b相加后的结果矩阵;

(6)Matrix multiply(Matrix b):返回当前矩阵与矩阵b相乘后的结果矩阵。

(7)print():打印出当前矩阵的值。

import java.util.*;
public class Matrix {private static final int ROW=100;private static final int COL=100;private int r;private int c;private double matrix[][];public Matrix()//构造函数,初始化{matrix=new double[ROW][COL];//默认行列分配100空间;this.r=ROW;this.c=COL;for(int i=0;i<ROW;i++)for(int j=0;j<COL;j++)matrix[i][j]=0;}public Matrix(int row,int col)//初始化{matrix=new double[row][col];this.r=row;this.c=col;for(int i=0;i<row;i++)for(int j=0;j<col;j++)matrix[i][j]=0;}boolean set(int row, int col, double value){if(row<0||row>this.r||col<0||col>this.r)//判断位置是否合法;return false;else{matrix[row][col]=value;return true;}}double get(int row,int col){return matrix[row][col];}int width(){return this.c;}int height(){return this.r;}Matrix add(Matrix b)//返回相加后的数组{if(this.r!=b.r||this.c!=b.c){System.out.println("ERROR!");return null;}Matrix m=new Matrix(r,c);for(int i=0;i<r;i++)for(int j=0;j<c;j++)m.matrix[i][j]=this.matrix[i][j]+b.matrix[i][j];   return m;}Matrix multiply(Matrix b){if(this.r!=b.c)//如果两个矩阵不服和相乘条件,输出错误;{System.out.println("ERORR!");return null;}int r=this.r;int c=b.c;Matrix m=new Matrix(r,c);for(int i=0;i<r;i++)//矩阵的乘法;for(int j=0;j<c;j++){double s=0;for(int i1=0;i1<r;i1++)for(int j1=0;j1<c;j1++)s=s+this.matrix[i1][j1]*b.matrix[j1][i1];m.matrix[i][j]=s;}return m;}void print(){for(int i=0;i<this.r;i++){for(int j=0;j<this.c;j++)System.out.print(matrix[i][j]+" ");System.out.println();}}public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);System.out.print("请输入第一个矩阵的行和列:");//输入第一个矩阵int r=sc.nextInt();int c=sc.nextInt();Matrix ma=new Matrix(r,c);double num;for(int i=0;i<r;i++)for(int j=0;j<c;j++){System.out.print("请输入第"+(i+1)+"行,第"+(j+1)+"列的元素值:");num=sc.nextDouble();ma.set(i,j,num);}System.out.println("第一个矩阵是"+ma.height()+"行,"+ma.width()+"列的矩阵:");ma.print();System.out.print("请输入第二个矩阵的行和列:");//输入第二个矩阵;r=sc.nextInt();c=sc.nextInt();Matrix mb=new Matrix(r,c);for(int i=0;i<r;i++)for(int j=0;j<c;j++){System.out.print("请输入第"+(i+1)+"行,第"+(j+1)+"列的元素值:");num=sc.nextDouble();mb.set(i,j,num);}System.out.println("第二个矩阵是"+mb.height()+"行,"+mb.width()+"列的矩阵:");mb.print();Matrix mc=ma.add(mb);System.out.println("两个矩阵相加是:");mc.print();mc=ma.multiply(mb);System.out.println("两个矩阵相乘是:");mc.print();}}

利用二维数组实现一个矩阵类:Matrix相关推荐

  1. 利用二维数组(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 ...

  2. c语言二维数组对角线输出字符,用C编程一个4*4的矩阵,用二维数组,求对角线元素的和。,c语言如何使二维数组 输出为矩阵的形式...

    导航:网站首页 > 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数组 输出为矩阵的形式 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数 ...

  3. Java利用二维数组判断节假日_《剑指offer》面试题3 二维数组中的查找 Java版

    (二维数组,每行递增,每列递增.输入二维数组和一个整数,判断数组中是否含有此数.) 我的方法:拿到题目,根据题目条件我提取出这样一个特性:一个数的右边和下面的数都比它大.于是就可以写出一种递归的方法: ...

  4. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  5. 【240】python 一个二维数组和一个整数,判断数组中是否含有该整数

    ♣ 题目部分(原文见公众号:python宝) python宝: https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5Nj ...

  6. 算法013:二维数组中的查找-在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断中是否存在

    题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.示例: 现有 ...

  7. 经典错误:二维数组与实际矩阵的差异所构成的易错点

    经典错误:二维数组与实际矩阵的差异所构成的易错点 标签:C语言 二维数组 矩阵 by 小威威 1.矩阵与二维数组的差异 在线性代数的课程中,我们接触到了矩阵这一工具,不难发现它很类似于C语言中的二维数 ...

  8. C++利用二维数组求解线性方程组

    C++利用二维数组求解线性方程组 今天给大家介绍二维数组,以下介绍来自二维数组百度百科 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式] ...

  9. php 二维数组字段合并,PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组_PHP教程...

    PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组 本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0 ...

最新文章

  1. How to attack a windows domain
  2. resolve fire在SAP UI5中的使用场景
  3. 推荐一个比较好用的Chrome扩展应用,提供了桌面便签功能
  4. mysql支持的平台和操作系统_MySQL 数据库所支持的操作系统_MySQL
  5. 做好前端的话HTML和CSS基础必须夯实!
  6. 成功 Root ------ 红米note3
  7. 基于R语言分析决策树和随机森林(1)
  8. java爬虫 抓取国家统计局:统计用区划代码和城乡划分代码(抓取省市区镇县办事处村委会数据)生成json
  9. GitLab使用教程(详细)(转载)
  10. ROS-3DSLAM(十二)lvi-sam源代码阅读10 —— visual_loop阅读3 + ORB学习
  11. 2018——走过的路
  12. weblogic10 配置 domian
  13. 湖南计算机专修学院20年同学聚会,20年后的一次同学聚会
  14. 关于SES2000找管线定位问题的实验
  15. 微信小程序 image图片组件实现宽度固定 高度自适应
  16. Java诊断工具Arthas使用说明
  17. PC端阴阳师 加长百鬼夜行舞台 如何简单修改分辨率
  18. 杭电acm 4545魔法串(字符串处理)
  19. iOS英语背单词神器-背轻松-单词卡APP系列推荐
  20. 2021年10月8日模拟赛(保龄奇遇记)

热门文章

  1. 移动应用Kony Solutions并购Sky Technologies
  2. SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子
  3. 解决由于权限问题导致YUM安装失败
  4. 从软件公司的企业文化浅谈什么是管理能力
  5. Vim 利剑常磨,见血封喉
  6. 火狐浏览器图形验证码刷新不生效的问题(图片src重新赋值不生效的问题)
  7. UESTC - 1057 秋实大哥与花 线段树
  8. 链克袋鼠Linker创建链克账户教程
  9. win10网络重置后wlan 不见解法 ,网卡黄色感叹号
  10. 假定某计算机的cpu,43.(11分)假定某计算机的CPU主频为80 MHz,CPI为4