蓝桥杯:试题 算法提高 矩阵转置

【问题描述】

给定一个n×m矩阵相乘,求它的转置。其中1≤n≤20,1≤m≤20,矩阵中的每个元素都在整数类型(4字节)的表示范围内。
【输入格式】
  第一行两个整数n和m;
  第二行起,每行m个整数,共n行,表示n×m的矩阵。数据之间都用一个空格分隔。
【输出格式】

共m行,每行n个整数,数据间用一个空格分隔,表示转置后的矩阵。
样例输入
2 4
34 76 -54 7
-4 5 23 9
样例输出
34 -4
76 5
-54 23
7 9


import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n=scanner.nextInt();  //行数
        int m=scanner.nextInt();  //列数
        int[][] arr1=new int[n][m];
        int[][] arr2=new int[m][n];
        for (int i = 0; i <n ; i++) {
            for (int j = 0; j <m ; j++) {
               arr1[i][j]=scanner.nextInt();  //给数组赋值
            }
        }

        for (int i = 0; i <n ; i++) {
            for (int j = 0; j <m ; j++) {
                  arr2[j][i]=arr1[i][j];      //行列互换
                }
            }

        for (int i = 0; i <m ; i++) {
            for (int j = 0; j <n ; j++) {
                System.out.print(arr2[i][j]+" ");
                if (j==n-1){
                    System.out.println();
                }
            }
        }

        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章