Focso 2020-03-31 21:49 采纳率: 0%
浏览 610

编写Java程序,使二维数组的行列转换

我做完,只能将相同的行数和列数交换,怎么修改,才能使不同的行数和列数交换啊?还有,结果到最后,全是0,我怎么才能加入元素值啊?
题目是这样子的:编写java程序,从键盘确定数组的维数,从键盘输入二维数组各个元素值,打印输出这个二维数组,并打印输出行列颠倒的二维数组。

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int c;
        System.out.println("请输入行数:");
        c=in.nextInt(); 
        int b;
        System.out.println("请输入列数:");
        b = in.nextInt();  
        final int size= c;
        final int size1= b;
        int[][] a1=new int[c][b];
        int[][] a2=new int[a1.length][];

        for(int i=0;i<a1.length;i++){

        a2[i]=new int[a1.length];

        }

        for(int i=0;i<a1.length;i++){

        for(int j=0;j<a1.length;j++){

        a2[j][i]=a1[i][j];

        System.out.print(a1[i][j]);

        System.out.print(" ");

        }

        System.out.println();

        }

        System.out.println("转置之后为:");

        for(int m=0;m<a2.length;m++){

        for(int n=0;n<a2.length;n++){

        System.out.print(a2[m][n]);

        System.out.print(" ");

        }

        System.out.println();

        }

        }

图片说明

  • 写回答

1条回答 默认 最新

  • 东离与糖宝 Java领域优质创作者 2023-06-12 21:45
    关注
    
    public class MAIN {
    
        public static void main(String[] args) {
            Scanner in= new Scanner(System.in);
            System.out.println("请输入数组的行和列:");
            int m =in.nextInt();               //定义一个数组的行 m
            int n =in.nextInt();               //定义一个数组的列 n
            int[][] arr1 = new int[m][n];      //定义一个数组mxn为arr1
            int[][] arr2 = new int[n][m];      //定义一个数组nxm为arr2 此数组为颠倒后的数组
            System.out.println("请输入数组的元素:");
            //给二维数组赋值
            for(int i=0;i<m;i++){
                for(int j=0;j<n;j++){
                    arr1[i][j] = in.nextInt();
                }
            }
            //打印一次输入的二维数组
            System.out.println("依次打印输入的二维数组:");
            for(int i=0;i<m;i++){
                for(int j=0;j<n;j++){
                    System.out.print(arr1[i][j] + "   ");
                }
                System.out.println();
            }
            //矩阵行列进行交换
            for(int i=0;i<m;i++){
                for(int j=0;j<n;j++){
                    arr2[j][i] = arr1[i][j];
                }
            }
            //输出交换后的矩阵
            System.out.println("依次输出行列颠倒的二维数组:");
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    System.out.print(arr2[i][j] + "   ");
                }
                System.out.println();
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器