import java.util.Scanner;
/**
* 设A为n×n阶矩阵(即n行n列),第i 行j 列的元素是a(i,j),即:A=a(i,j)
* 定义A的转置为这样一个n×n阶矩阵B,满足B=a(j,i),
* 即 b (i,j)=a (j,i)(B的第i行第j列元素是A的第j行第i列元素),记A'=B
写一个函数计算n阶矩阵的转置。
*/
public class Transposition{
public static void main(String[] args) {
// TODO Auto-generated method stub
//用户输入是几阶矩阵
System.out.println("请输入是几阶矩阵");
Scanner sc=new Scanner(System.in);
//声明并初始化二维数组
int n=sc.nextInt();
int[][] arr=new int[n][n];
int[][] arr1=new int[n][n];
//提示信息
System.out.println("请输入数组元素,共"+n*n+"个:");
//循环向数组内输入元素值
for(int i=0;i
for(int j=0;j
arr[i][j]=sc.nextInt();
}
System.out.println("输入的矩阵为:");
//输出所输入的数组
printArray(arr);
//调用置换函数
turnOver(arr,arr1);
System.out.println("转制后的数组为:");
printArray(arr1);
}
//二维数组的遍历
public static void printArray(int[][] array){
//外层循环,有多少个一维数组
for(int i=0;i
//内循环
for(int j=0;j
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
//定义一个函数,使行变列,列边行,矩阵转置,一定要是两个数组,一个为全是0的数组,
//如果是一个数组,直接把行变成列,数组元素值会改变,一定不能这样
public static void turnOver(int[][] array,int[][] array1 ){
for(int i=0;i
for(int j=0;j
array1[j][i]=array[i][j];
}
}
}
}