我做完,只能将相同的行数和列数交换,怎么修改,才能使不同的行数和列数交换啊?还有,结果到最后,全是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();
}
}
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();
}
}
}