java第五周(矩阵中数据的位置变换功能、矩阵的加法功能、矩阵的乘法功能)

来源:互联网 发布:恐怖故事2剧情解析知乎 编辑:程序博客网 时间:2024/06/07 05:56

   矩阵中的乘法和加法在第四周就实现了的,在这里我就不多解释了,链接:http://blog.csdn.net/wohenai791515672/article/details/8104854

   对于矩阵的位置变换功能的实现,可以进行无限次换位,通过while(true){  }实现的,以下是类的代码:

class juzh{ public  void Pos() {                 Scanner sca=new Scanner(System.in);              System.out.println("请输入行数:");          int d2=sca.nextInt();          System.out.println("请输入列数:");          int e2=sca.nextInt();          int[][] t=new int[d2][e2];                   System.out.println("请输入一个矩阵A:");          for(int i=0;i<d2;i++)          {            for(int j=0;j<e2;j++)             {               t[i][j]=sca.nextInt();                       }          }                        while(true)          {            System.out.println("请输入初始位置:");            System.out.println("请输入行:");            int d=sca.nextInt();            System.out.println("请输入列:");            int e=sca.nextInt();            System.out.println("请输入变换后的位置:");            System.out.println("请输入行:");            int d1=sca.nextInt();            System.out.println("请输入列:");            int e1=sca.nextInt();            int temp=0;                  temp=t[d][e];            t[d][e]=t[d1][e1];            t[d1][e1]=temp;               for(int  i=0;i<d2;i++)            {                for(int j=0;j<e2;j++)               {                   System.out.print("  "+t[i][j]);                        }              System.out.println();            }          }        }      public  void  jia()    {            System.out.println("提示:矩阵A=(aij)m×n和B=(bij)m×n相加时,必须要有相同的行数和列数");            System.out.println("                   第一个矩阵A:                         ");                   Scanner sca=new Scanner(System.in);            System.out.println("请输入行数:");            int d=sca.nextInt();            System.out.println("请输入列数:");            int e=sca.nextInt();            int[][] t=new int[d][e];            System.out.println("请输入第一个矩阵A:");         for(int i=0;i<d;i++)         {          for(int j=0;j<e;j++)          {           t[i][j]=sca.nextInt();                      }         }                    System.out.println("                      第二个矩阵B:                     ");                 int[][] t1=new int[d][e];            System.out.println("请输入第二个矩阵B:");         for(int i=0;i<d;i++)         {          for(int j=0;j<e;j++)          {           t1[i][j]=sca.nextInt();                      }         }           int[][] c=new int[d][e];                                    for(int i=0;i<d;i++)             {              for(int j=0;j<e;j++)              {                                 c[i][j]=t[i][j]+t1[i][j];                             }             }           System.out.println("矩阵:C=A+B");          for(int  i=0;i<d;i++)             {              for(int j=0;j<e;j++)              {               System.out.print("  "+c[i][j]);                              }              System.out.println();             }                     }                                       public  void  cheng()    {          System.out.println("若矩阵乘矩阵,则只有在前者的列数等于后者的行数时才有意义");          System.out.println("                   第一个矩阵A:                         ");          Scanner sca=new Scanner(System.in);          System.out.println("请输入行数:");          int d=sca.nextInt();          System.out.println("请输入列数:");          int e=sca.nextInt();          int[][] t=new int[d][e];          System.out.println("请输入第一个矩阵A:");         for(int i=0;i<d;i++)         {          for(int j=0;j<e;j++)          {           t[i][j]=sca.nextInt();                     }         }                 System.out.println("                      第二个矩阵B:                     ");          System.out.println("请输入行数:");          int d1=sca.nextInt();          System.out.println("请输入列数:");          int e1=sca.nextInt();          int[][] t1=new int[d1][e1];          System.out.println("请输入第二个矩阵B:");         for(int i=0;i<d1;i++)         {           for(int j=0;j<e1;j++)          {            t1[i][j]=sca.nextInt();                    }         }            int[][] c=new int[d][e1];               if(e!=d1)         {            System.out.println("由于A矩阵的列数不等于B矩阵的行数,故不可乘");                 }         else         {             for(int i=0;i<d;i++)             {              for(int j=0;j<e1;j++)              {               for(int r=0;r<e;r++)               {                 c[i][j]=c[i][j]+t[i][r]*t1[r][j];               }              }             }             System.out.println("矩阵:C=A*B");           for(int i=0;i<d;i++)           {            for(int j=0;j<e1;j++)            {             System.out.print("  "+c[i][j]);                          }            System.out.println();           }                 }                                 }}


矩阵的位置变换功能的实现的图:

 

 

原创粉丝点击