java中的二维数组转置


题目描述

4-18 矩阵a用数组表示为 int a[ ][ ]={{1,2,3,4},{2,3,4,5},{3,4,5,6}},定义矩阵b为int b[ ][ ]=new int[4][3];编程实现将矩阵a转置,转置后的数据存入矩阵b中。

 

输入描述

输入一个二维数组

 

输出描述

输出该二维数组的转置数组

 

输入样例

1 2 3 4
2 3 4 5
3 4 5 6

 

输出样例

1 2 3
2 3 4
3 4 5
4 5 6

 

import java.util.*;
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];
   for(int i=0;i<n;i++)
   {
    for(int j=0;j<m;j++)
    {
      a[i][j]=sc.nextInt();
    }
   
   }
  
   int  b[][]=new int [m][n];
   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();
   }
  }
  
}

我写的代码不能通过,有什么不用输入行列可以做出来的方法吗,希望可以留一下代码


qq_Decisivem_0
浏览 2582回答 1
1回答

蜂之谷

int a[ ][ ]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};  int b[ ][ ]=new int[4][3];  for (int i = 0; i < b.length; i++) {  for (int j = 0; j < b[i].length; j++) { b[i][j] = a[j][i]; } }    for (int i = 0; i < b.length; i++) {  for (int j = 0; j < b[i].length; j++) { System.out.print(b[i][j] + " "); }  System.out.println(); }
打开App,查看更多内容
随时随地看视频慕课网APP