如何用java编写一个矩阵的转置?

Python022

如何用java编写一个矩阵的转置?,第1张

int a[][] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}}

        int b[][] = new int [4][7]

        for (int i = 0i <4i++) {

            for (int j = 0j <7j++) {

                b[i][j] = a[j][i]

            }

        }

        System.out.println("矩阵a:")

        for (int i = 0i <7i++) {

            for (int j = 0j <4j++) {

                if (j <3) {

                    System.out.print(a[i][j] + " ")

                } else {

                    System.out.println(a[i][j] + " ")

                }

            }

        }

        System.out.println("矩阵a转置:")

        for (int i = 0i <4i++) {

            for (int j = 0j <7j++) {

                if (j <6) {

                    System.out.print(b[i][j] + " ")

                } else {

                    System.out.println(b[i][j] + " ")

                }

            }

        }

代码写得烂不要喷我,我想解决思路就是这样吧!

/**

* @author 熙熙

* @2011-4-20

*/

public class JuZhenZhuanZhi {

/**

* @param args

*/

public static void main(String[] args) {

int a[][]={

{11,12,13}

,{21,22,23}

,{31,32,33}

}

System.out.println("转置前的矩阵:")

print(a)

zhuanZhi(a)

System.out.println("转置后的矩阵:")

print(a)

}

public static void zhuanZhi(int a[][]){

for(int i=0i<a.lengthi++){

for(int j=i+1j<a[i].lengthj++){

int tem = a[i][j]

a[i][j] = a[j][i]

a[j][i] = tem

}

}

}

public static void print(int a[][]){

for(int i=0i<a.lengthi++){

int j=0

for(j<a[i].length-1j++){

System.out.print(a[i][j]+",")

}

System.out.println(a[i][j])

}

}

}

修改后的Java程序:

package com.homework.fourdays

import java.util.Scanner

public class page81_question02 {

public static void main(String[] args) {

Scanner in = new Scanner(System.in)

int m, n

int i, j

System.out.println("请输入矩阵M*N中的M值")

m = in.nextInt()

System.out.println("请输入矩阵M*N中的N值")

n = in.nextInt()

int[][] a = new int[m][n] //存储转置前的矩阵

int[][] b = new int[n][m] //存储转置后的矩阵

System.out.println("请输入" + m + " * " + n + "矩阵中的所有元素")

for (i = 0 i < m i++) {

for (j = 0 j < n j++) {

a[i][j] = in.nextInt()

}

}

//矩阵转置

for (i = 0 i < m i++) {

for (j = 0 j < n j++) {

b[j][i] = a[i][j]

}

}

System.out.println("转置前")

for (i = 0 i < m i++) {

for (j = 0 j < n j++) {

System.out.printf("%6d", a[i][j])

}

System.out.println()

}

System.out.println("转置后")

for (i = 0 i < n i++) {

for (j = 0 j < m j++) {

System.out.printf("%6d", b[i][j])

}

System.out.println()

}

}

}

运行测试:

请输入矩阵M*N中的M值

2

请输入矩阵M*N中的N值

3

请输入2 * 3矩阵中的所有元素

1 2 3

4 5 6

转置前

     1     2     3

     4     5     6

转置后

     1     4

     2     5

     3     6