java运用二维数组随机数进行矩阵加减乘和转置

import java.util.Random;
import java.util.Scanner;
public class 矩阵运算{
public static void main(String args[]){ Random ran=new Random();
int h1 =0;
int l1 =0;
int h2=0;
int l2=0;
for(int i = 0;i<1;i++) {
h1 =ran.nextInt(3)+2;
l1 =ran.nextInt(3)+2; h2=ran.nextInt(3)+2;
l2 =ran.nextInt(3)+2;
}
int[][] arr1=new int[h1][l1];
int[][] arr2=new int[h2][l2]; System.out.println(“第一个矩阵为:”); for(int i=0;i<h1;i++){
for(int j=0;j<l1;j++){
int x =ran.nextInt(3);
arr1[i][j]=x;
System.out.print(arr1[i][j]+" “);
}
System.out.println(” ");
}

System.out.println(“第二个矩阵为:”); for(int i=0;i<h2;i++){
for(int j=0;j<l2;j++){
int x =ran.nextInt(3);
arr2[i][j]=x;
System.out.print(arr2[i][j]+" “);
}
System.out.println(” ");
}
Scanner sc =new Scanner(System.in); System.out.println(“请选择你要进行的操作:”);
System.out.println(“1.矩阵转置”); System.out.println(“2.矩阵相加”); System.out.println(“3.矩阵相减”); System.out.println(“4.矩阵相乘”); System.out.println(“请输入1-4:”);
int n =sc.nextInt();

if(n==1){
System.out.println(“第一个矩阵转置为:”); int [][]a1 =new int[l1][h1];
for(int i=0;i<l1;i++){
for(int j=0;j<h1;j++){
int x =ran.nextInt(3);
a1[i][j]=arr1[j][i]; System.out.print(a1[i][j]+" “);
}
System.out.println(” “);
}
System.out.println(“第二个矩阵转置为:”); int [][]a2 =new int[l2][h2];
for(int i=0;i<l2;i++){
for(int j=0;j<h2;j++){
int x =ran.nextInt(3);
a2[i][j]=arr2[j][i]; System.out.print(a2[i][j]+” “);
}
System.out.println(” ");
}
}

else if(n2){
if(h1
h2&&l1==l2){ System.out.println (“两矩阵相加为:”);
int [][] jia=new int[h1][l1];
for ( int i = 0 ; i < h1; i++ ) {
for ( int j = 0 ; j <l1; j++ ) { jia[i][j] = arr1[ i ][ j ] + arr2[ i ][ j ]; System.out.print ( jia[i][j]+" “); } System.out.println (” ");
}
}
else {
System.out.println(“行数和列数不相等”);
}
}

else if(n==3){   

if(h1==h2&&l1==l2){       
 System.out.println("两矩阵相减为:");        
 int [][] jian=new int[h1][l1];       
  for ( int i = 0 ; i < h1; i++ ) {            
  for ( int j = 0 ; j <l1; j++ ) {               
   jian[i][j] = arr1[ i ][ j ] - arr2[ i ][ j ];                    System.out.print (jian[i][j]+" ");            
   }            
   System.out.println (" ");       
    }   
     }    
     else {        
     System.out.println("行数和列数不相等");
        }

}else if(n4){
if(l1
h2){
System.out.println(“两矩阵相乘为:”); int [][] cheng=new int[h1][l2];
for ( int i = 0 ; i < h1; i++ ) {
for ( int j = 0 ; j <l2; j++ ) {
for(int z =0;z<l2;z++){//l1 cheng[i][j]+= arr1[ i ][ z ] * arr2[ z ][ j ]; }
System.out.print (cheng[i][j]+" “);
}
System.out.println (” ");
}
} else {
System.out.println(“arr1列数和arr2的行数不相等,不能运算”);
}
}else{ System.out.println(“输入错误,强行结束”);
}
}
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值