如何反转 4x4 数组中的一行

how to reverse a row in a 4x4 array

我对此还很陌生,无法理解这个问题。我基本上得到了一个 4x4 数组,例如:

5 2 1 7
3 2 4 4
7 8 9 2
1 2 4 3

我正在尝试反转特定行,我正在努力在网上找到任何关于对特定行执行此操作的信息,所以我想知道是否有人可以告诉我如何处理这个问题。

如果用户要求反转第 0 行,则所需的输出将是 return

7 1 2 5
3 2 4 4
7 8 9 2
1 2 4 3

我试过了,但我的代码不起作用。这是我的代码:

for(int i = 0; i < row; i++){
for(int col = 0; col < cols / 2; col++) {
    int temp = arr[i][col];
    arr[i][col] = arr[i][arr[i].length - col - 1];
    arr[i][arr[i].length - col - 1] = temp;
}

提前致谢!

使用特定的行号和数组,我相信这会起作用。试试看,让我知道。

 function rowSwitch(row_num, arr) {

 for(int col = 0; col < arr[row_num].length/ 2; col++) {
     int temp = arr[row_num][col];
     arr[row_num][col] = arr[row_num][arr[row_num].length - col - 1];
     arr[row_num][arr[row_num].length - col - 1] = temp; }

 }

好的,所以首先,当您 运行 处理数据结构时,尽量不要处理它。 在这里,您通过切换第一个和最后一个来更改数组,但是如果长度为奇数会怎样?有一个案子你没有处理。 其次你 运行 在错误的索引上,都 arr[i].length == arr.length 如果这不是正方形它也会有错误...

如果您在使用索引时遇到问题,我会保存一个一维数组并切换它。

尝试使用此代码:

for(int i = 0; i < arr.length / 2; i++)
{
    int temp = arr[i];
    arr[i] = arr[arr.length - i - 1];
    arr[arr.length - i - 1] = temp;
}