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

编写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条回答 默认 最新

  • 趣享先生 优质创作者: 编程框架技术领域 2024-09-14 10:56
    关注
    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int rows, cols;
            System.out.println("请输入行数:");
            rows = in.nextInt();
            System.out.println("请输入列数:");
            cols = in.nextInt();
    
            int[][] originalArray = new int[rows][cols];
    
            // 输入二维数组各个元素值
            System.out.println("请输入二维数组各个元素值:");
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < cols; j++) {
                    originalArray[i][j] = in.nextInt();
                }
            }
    
            // 打印输出原始二维数组
            System.out.println("原始二维数组为:");
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < cols; j++) {
                    System.out.print(originalArray[i][j] + " ");
                }
                System.out.println();
            }
    
            // 创建行列颠倒的二维数组
            int[][] transposedArray = new int[cols][rows];
    
            // 对原始数组进行行列颠倒操作
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < cols; j++) {
                    transposedArray[j][i] = originalArray[i][j];
                }
            }
    
            // 打印输出行列颠倒的二维数组
            System.out.println("转置之后的二维数组为:");
            for (int i = 0; i < cols; i++) {
                for (int j = 0; j < rows; j++) {
                    System.out.print(transposedArray[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
    
    
    评论

报告相同问题?