Description
设计一个矩阵类,类中的方法能够对矩阵进行加法、减法和乘法运算。定义矩阵类对象并根据要求输出结果。
Input
输入多组数据,组数不定。
每组中,
先是表示运算的一一个整数,1表示加法,2表示减法,3表示乘法。
对于加、减法,后面的数据是矩阵的行数n和列数m;如果是乘法,为n,m,k三个整数,n、m为第一一个矩阵行数和列数,m、k为第二
个矩阵的行数和列数。
再然后是两个矩阵的数据,全部是整数。
Output
每组数据运算结果矩阵,nXm或nXk矩阵。数据之间用一一个空格分隔。参加样例。
package CLASSlei;
import java.util.Scanner;
class matrix{
int n;//行数
int m;//列数
int [][]a;
matrix(int [][]a){
this.n=a.length;
this.m=a[0].length;
this.a=new int[this.n][this.m];
for(int i=0;i<this.n;i++){
for(int j=0;j<this.m;j++){
this.a[i][j]=a[i][j];
}
}
}
matrix add(matrix m1){
int [][]result=new int[this.n][this.m];
for(int i=0;i<this.n;i++){
for(int j=0;j<this.m;j++){
result[i][j]=this.a[i][j]+m1.a[i][j];
}
}
return new matrix(result);
}
matrix sub(matrix m1){
int [][]result=new int[this.n][this.m];
for(int i=0;i<this.n;i++){
for(int j=0;j<this.m;j++){
result[i][j]=this.a[i][j]-m1.a[i][j];
}
}
return new matrix(result);
}
matrix mul(matrix m1){
int [][]result=new int[this.n][this.m];
for(int i=0;i<this.n;i++){
for(int j=0;j<m1.m;j++){
for(int k=0;k<m1.n;k++){
result[i][j]+=this.a[i][k]*m1.a[k][j];
}
}
}
return new matrix(result);
}
void print(){
for(int i=0;i<this.n;i++){
for(int j=0;j<this.m;j++){
if(j!=this.m-1)
System.out.print(this.a[i][j]+" ");
else System.out.print(this.a[i][j]);
}
System.out.println();
}
}
void print2(){
for(int i=0;i<this.n;i++){
for(int j=0;j<this.n;j++){
if(j!=this.n-1)
System.out.print(this.a[i][j]+" ");
else System.out.print(this.a[i][j]);
}
System.out.println();
}
}
}
public class A {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
while (input.hasNext()){
int target=input.nextInt();
if(target==1 || target==2){
int n,m;
n=input.nextInt();
m=input.nextInt();
int [][]t1=new int[n][m];
int [][]t2=new int[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
t1[i][j]=input.nextInt();
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
t2[i][j]=input.nextInt();
}
}
matrix mm1=new matrix(t1);
matrix mm2=new matrix(t2);
if(target==1){
matrix mm3=mm1.add(mm2);
mm3.print();
}
else {
matrix mm3=mm1.sub(mm2);
mm3.print();
}
}
else {
int n,m,k;
n=input.nextInt();
m=input.nextInt();
k=input.nextInt();
int [][]t1=new int[n][m];
int [][]t2=new int[m][k];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
t1[i][j]=input.nextInt();
}
}
for(int i=0;i<m;i++){
for(int j=0;j<k;j++){
t2[i][j]=input.nextInt();
}
}
matrix mm1=new matrix(t1);
matrix mm2=new matrix(t2);
matrix mm3=mm1.mul(mm2);
mm3.print2();
}
}
}
}