gpt4 book ai didi

java - 交换相对行/列中所有整数或字符的二维数组

转载 作者:行者123 更新时间:2023-12-01 14:08:29 24 4
gpt4 key购买 nike

我觉得这个问题在我的脑海中得到了转变,因为行和列很容易混淆。有人可以帮我看看我哪里出错了。

public static void switchRows( int[][] anArray ){
int num = 1;

for(int i = 0; anArray.length > i; i++){
for(int j = 0; anArray[i].length > j; j++){
int[][] temp = new int[anArray.length][anArray[i].length];

temp[i] = anArray[i];
anArray[i] = anArray[anArray.length - num];
anArray[anArray.length - num] = temp[i];

}
num++;
}
}

public static void switchColumns( char[][] anArray ){
int col = 1;

for(int i = 0; anArray.length > i; i++){
for(int j = 0; anArray[i].length > j; j++){
char[][] temp = new char[anArray.length][anArray[i].length];

temp[j] = anArray[j];
anArray[j] = anArray[anArray[i].length - col];
anArray[anArray[i].length - col] = temp[j];

}
col++;
}
}

最佳答案

行是水平的,列是垂直的。从你的描述来看,你的情况是这样的:

       COLUMN 1   | Column 2
ROW 1 | 'a' | 'b'
ROW 2 | 'x' | 'y'

使用二维数组,您将有 var myVar[ROW][COLUMN]所以,myVar[1][2]的值将是“b”,即 ROW 1COLUMN 2 .

对于这个程序,听起来您需要两个函数。第一个应该交换行的值 ( switchRows ), ROW 1ROW 2 ,所以你将拥有:

       COLUMN 1   | Column 2
ROW 1 | 'x' | 'y'
ROW 2 | 'a' | 'b'

myVar[1][2]的值那么将是“y”。

另一个应该函数应该交换列的值 ( switchColumns ), COLUMN 1COLUMN 2 ,所以你会有

       COLUMN 1   | Column 2
ROW 1 | 'b' | 'a'
ROW 2 | 'y' | 'x'

myVar[1][2]的值这样做之后将是“a”。

作为如何执行此操作的提示,按照描述将数组从内到外交换(将 [1, 2, 3, 4, 5] 更改为 [5, 4, 3, 2, 1] )与颠倒数组内元素的顺序相同。尝试将元素添加到新数组中,但从原始数组的末尾开始一直到开头。

编辑:其他一些注意事项:您正在通过内部 for 每次迭代重新声明您的临时数组循环,有效地重置它。

此外,您实际上只需要一个函数即可完成实际的交换。在伪代码中:

public int[] swap(int[] stuff){
//do the swapping here
return swappedStuff;
}

public int[][] innerSwap(int[][] stuff){
//go through every char[] and set it equal to swap(char[])
return innerSwappedStuff;
}

关于java - 交换相对行/列中所有整数或字符的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18727246/

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