gpt4 book ai didi

java - 如何垂直而不是水平排列数组?

转载 作者:行者123 更新时间:2023-12-01 20:09:51 26 4
gpt4 key购买 nike

我试图垂直和水平排列一个二维数组,同时按给定值递增它。我能够弄清楚如何用这种方法水平地做到这一点:

  public static void fillRight (int [][] fillRightArray, int step){

int count = 0;
for (int i = 0; i< fillRightArray.length; i++){
for (int j = 0; j< fillRightArray[i].length; j++){
count++;
fillRightArray[i][j] += step*count;
// fillRightArray[i][j] += step*(i+1);


System.out.print(fillRightArray[i][j] + " ");

}
System.out.print("\n");
}

所以当我打印时水平排列看起来像这样:

2 4 6 8 10
12 14 16 18
20 22 24 26

现在对于垂直版本,我尝试了多次尝试,但似乎没有任何效果。我知道它与 fillRightArray 非常相似,但我似乎无法弄清楚。

我得到的最接近的是:

public static void fillDown(int [][] fillDownArray, int step){

int count = 0;
for (int i = 0; i<fillDownArray.length; i++){
for (int j = 0; j< fillDownArray[i].length; j++){
count++;
fillDownArray[i][j] += step*(i+1);

System.out.print(fillDownArray[i][j]+ " ");
}
System.out.print("\n");
}

输出结果是:

 2 2 2 2 2
4 4 4 4 4
6 6 6 6 6
8 8 8 8 8
10 10 10 10 10

关于如何使它看起来像这样的任何想法:

2 12 22 32
4 14 24 34
6 16 26 36
8 18 28 38
10 20 30 40

最佳答案

您可以简单地转置数组,如下所示

// transpose in-place
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
int temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}

关于java - 如何垂直而不是水平排列数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46820425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com