永发信息网

java中利用数组换行的问题。

答案:4  悬赏:80  手机版
解决时间 2021-02-05 15:36
  • 提问者网友:疯子也有疯子的情调
  • 2021-02-05 02:09
package java1;

public class two {


public static void main(String[] args) {
int arr[][]=new int[][]
{{1,2,3},{4,5,6},{7,8,9}};
System.out.println("换行前");
printarr(arr);
int arr1[][]=new int[arr.length][arr.length];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
arr[i][j]=arr1[j][i];
}
}
System.out.println("换行后");
printarr(arr);

}

private static void printarr(int[][] arr) {
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
System.out.print(arr[i][j]+"");
}
System.out.println();
}

}
}
为什么换行之后全是0?
怎样修改可以换行?谢谢了。
最佳答案
  • 五星知识达人网友:玩世
  • 2021-02-05 02:30
arr[i][j]=arr1[j][i];改为arr1[j][i]=arr[i][j];

System.out.println("换行后");
printarr(arr); 这句应该输出printarr(arr1)
(同上一个回答者答案一样)
你之前的没有语法错误,但是arr1形成后里面元素初始值是0,并且arr1 是你新造的用来存放交换后的数字,所以应该把arr的元素交换后赋给arr1里面的元素,所以你之前的做法是错误的,你是把arr1里面的数赋给了arr,输出的又是arr的值,当然全部都是0了
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-02-05 04:10
int arr1[][]=new int[arr.length][arr.length]; 这句话是建立一个新的数组arr1,大小恰好跟arr相同而已,没有给arr1赋值,所以arr1的元素的值应该默认为0。 而且,arr如果是3*4的话,得到的arr1应该只是3*3的吧。我觉得可以改成这样 int arr1[][]=new int[arr.length][arr[0].length]; 这样就可以建立一个跟arr1相同大小的数组了。 行列对换的话,就应把上面的换成 int arr1[][]=new int[arr[0].length][arrlength]; 然后根据楼上的回答做就好了。 arr[i][j]=arr1[j][i]; 这句应该写成arr1[j][i]=arr[i][j]; System.out.println("换行后"); printarr(arr); 这句应该输出printarr(arr1);
  • 2楼网友:逐風
  • 2021-02-05 03:47
arr[i][j]=arr1[j][i]; 这句应该写成arr1[j][i]=arr[i][j]; System.out.println("换行后"); printarr(arr); 这句应该输出printarr(arr1);
  • 3楼网友:鱼忧
  • 2021-02-05 02:38

public static void main(string[] args) {   int n = 4;

  for (int i = 1; i <= n; i++) {    for (int j = 1; j <= n - i; j++) {     system.out.print(" ");    }

   for (int j = 1; j <= i; j++) {     system.out.print("*");    }    system.out.println(" ");   }   for (int i = 1; i <= n; i++) {    for (int j = 1; j <= i; j++) {     system.out.print("*");    }    for (int j = 1; j <= n - i; j++) {     system.out.print(" ");    }    for (int j = 1; j <= n - i; j++) {     system.out.print(" ");    }    for (int j = 1; j <= i; j++) {     system.out.print("*");    }    system.out.println();   }

 }

外面那个for控制换行,里面的for控制一行有多少个空格和*

所以当然实在外面那个for写 system.out.println();

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯