由于以前没有接触过java中的二维数组,今天做这个题目时,被卡住了,
我能够写的代码如下:
public class Test4 { /**
 * 写一个函数,使给定的一个二维数组(3*3)转置,即行列互换
 */
static int[][] a1 = new int[n][n];

public void transpose(int n){
boolean resul = false;
int t;
for(int i =0;i<a1.length;i++){
for(int j=i+1;j<a1[i].length;j++){
t = a1[i][j];
a1[i][j] = a1[j][i];
a1[j][i]= t;
}
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);  
        for(int i=0;i<a.length;i++){
         for(int j=0;j<a[i].length;j++){
           System.out.println("请输入正整数:");
           int a1 = sc.nextInt();
         }
        }
       Test4 t4 = new Test4();
       t4.transpose(4);
        //输出结果
        for(int i =0;i<a1.length;i++){
         for(int j=0;j<a1[i].length;j++){
         System.out.println("转置后的队列如下:"+a1[i][j]);
         }
        }
        
}}有很多部分还没有写完整,请求各位大侠的帮忙啦,让我学习一下,使用,谢谢啦

解决方案 »

  1.   

    就给你的简单的改了下:import java.util.Scanner;public class Test4 { /**
     * 写一个函数,使给定的一个二维数组(3*3)转置,即行列互换
     */
    static int[][] a1 = new int[3][3]; public void transpose(int n) {
    int t;
    for (int i = 0; i < a1.length; i++) {
    for (int j = i + 1; j < a1[i].length; j++) {
    t = a1[i][j];
    a1[i][j] = a1[j][i];
    a1[j][i] = t;
    }
    }
    } public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入9个正整数,以空格分隔:");
    for (int i = 0; i < a1.length; i++) {
    for (int j = 0; j < a1[i].length; j++) {
    a1[i][j] = sc.nextInt();
    }
    }
    Test4 t4 = new Test4();
    t4.transpose(3);
    // 输出结果
    System.out.println("转置后的队列如下:");
    for (int i = 0; i < a1.length; i++) {
    for (int j = 0; j < a1[i].length; j++) {
    System.out.print(a1[i][j]+" ");
    }
    System.out.println();
    } }}
      

  2.   

    import java.util.Scanner;class Test4 {
    public static void transpose(int[][] a1) {
    int t; 
    for(int i =0;i<a1.length;i++) {
    for(int j=i+1;j<a1[i].length;j++) {
    t = a1[i][j];
    a1[i][j] = a1[j][i];
    a1[j][i]= t;
    }
    }
    }
    }
    public class Test {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int[][] a = new int[3][3];

    System.out.println("请输入正整数:");
    for(int i = 0; i < a.length; i++) {
    for(int j = 0; j < a[i].length; j++) {
    a[i][j] = sc.nextInt();
    }
    }

    System.out.println("转置前的数列如下:");
    for(int i = 0; i < a.length; i++) {
    for(int j = 0;j < a[i].length; j++) {
    System.out.print(a[i][j] + ' ');
    }
    System.out.println();
    }

    Test4.transpose(a);

    System.out.println("转置后的数列如下:");
    for(int i = 0; i < a.length; i++) {
    for(int j = 0;j < a[i].length; j++) {
    System.out.print(a[i][j] + ' ');
    }
    System.out.println();
    } }

    }