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 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退