首页 > 试题广场 >

矩阵转置

[编程题]矩阵转置
  • 热度指数:51768 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛有一个矩阵 a_{n,m},他想编写一个程序,计算转置后的矩阵 a_{n,m}^{\top}

【名词解释】
\hspace{15pt}【转置矩阵】转置矩阵是将矩阵的行列互换得到的新矩阵。

输入描述:
\hspace{15pt}在一行中输入两个整数 n,m \left(1 \leqq n,m \leqq 10\right),分别表示矩阵的行数和列数。 
\hspace{15pt}接下来 n 行,每行输入 m 个整数 a_{i,1},a_{i,2},\dots,a_{i,m} \left(-10^{9} \leqq a_{i,j} \leqq 10^{9}\right),用空格分隔。


输出描述:
\hspace{15pt}输出 mn 列,为矩阵的转置结果。每个元素之后使用一个空格。
示例1

输入

2 3
1 2 3
4 5 6

输出

1 4
2 5
3 6

说明

原矩阵为:

\begin{pmatrix}1 & 2 & 3\\4 & 5 & 6\end{pmatrix}

其转置矩阵为:

\begin{pmatrix}1 & 4\\2 & 5\\3 & 6\end{pmatrix}
示例2

输入

1 4
7 8 9 10

输出

7
8
9
10

说明

原矩阵为  :

\begin{pmatrix}7 & 8 & 9 & 10\end{pmatrix}

其转置矩阵为:

\begin{pmatrix}7\\8\\9\\10\end{pmatrix}
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int m = in.nextInt(), n = in.nextInt();
        int[][] a = new int[n][m];
        for (int h=0; h<m; h++) {
            for (int w=0; w<n; w++) {
                a[w][h] = in.nextInt();
            }
        }
        for (int[] outside:a) {
            for(int inside:outside) {
                System.out.printf("%d ", inside);
            }
            System.out.println();
        }
    }
}

发表于 2025-10-09 11:32:40 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), m = in.nextInt();
        int[][] nums1 = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                nums1[i][j] = in.nextInt();
            }
        }
        in.close();
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(nums1[j][i] + " ");
            }
            System.out.println();
        }
    }
}

发表于 2024-09-11 10:48:29 回复(0)
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt(),m=sc.nextInt();
        int[][] arr=new int[m][n];
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                arr[j][i]=sc.nextInt();
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                System.out.printf("%d ",arr[i][j]);
            }  
            System.out.println();
        }  
    }
}

发表于 2022-08-12 21:48:56 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        int n = scanner.nextInt();
        //输入的数组
        int[][] Martix = new int[m][n];
        while(scanner.hasNext()){
            for(int i = 0;i < m;i++){
                for(int j = 0;j < n;j++){
                    Martix[i][j] = scanner.nextInt();
                }
            }
            for(int a = 0;a < n;a++){
                for(int b = 0;b < m;b++){
                    System.out.print(Martix[b][a] + " ");
                }
                System.out.println("");
            }
        }
    }
}

发表于 2022-07-04 11:12:32 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int m = sc.nextInt();
            int n = sc.nextInt();
            int[][] arr = new int[m][n];
            for(int i = 0 ; i < m ; i++){
                for(int j = 0; j < n ; j++){
                    arr[i][j] = sc.nextInt();
                }
            }
            int[][] arr1 = new int[n][m];
            for(int i = 0 ; i < n ; i++){
                for(int j = 0; j < m ; j++){
                    int k = i;
                    int t = j;
                    arr1[i][j] = arr[t][k];
                    System.out.print(arr1[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
}

发表于 2021-10-12 19:54:01 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] array = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                array[i][j] = sc.nextInt();
            }
        }
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(array[j][i] + " ");
            }
            System.out.println();
        }
    }
}

发表于 2021-07-16 15:04:45 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String [] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int [][] a = new int [n][m];
        int [][] b = new int [m][n];
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                a[i][j] = sc.nextInt();
            }
        }
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                b[i][j] = a[j][i];
                System.out.print(b[i][j]+" ");
            }
            System.out.println();
        }
    }
}
发表于 2021-05-08 17:42:39 回复(0)
import java.util.Scanner ;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] num1 = new int[n+1][m+1];
        int[][] num2 = new int[m+1][n+1];
        for(int i = 1; i<=n ; i++){
            for(int j = 1; j<=m ; j++){
                num1[i][j] = sc.nextInt();
                num2[j][i] = num1[i][j];
            }
        }
        for(int k=1; k<=m ; k++){
            for(int r=1 ; r<=n ; r++){
                System.out.print(num2[k][r]+" ");
            }
            System.out.print("\n");
        }
    }
}

发表于 2021-03-01 16:31:13 回复(0)

import java.util.Scanner;

public class
Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int a[][]=new int[n+m][n+m] ; for (int i = 0; i <n ; i++) { for (int j = 0; j <m ; j++) { a[i][j]=sc.nextInt(); } } for (int i = 0; i <m ; i++) { for (int j = 0; j <n ; j++) { System.out.print(a[j][i]+" "); if(j==n-1) System.out.println(); } } } }

发表于 2020-03-13 15:17:52 回复(0)