我对此很新,我无法解决这个问题。我基本上得到了一个4x4阵列,如:
5 2 1 7
3 2 4 4
7 8 9 2
1 2 4 3
我正在尝试反转特定的行,我正在寻找任何在线搜索特定行的内容,所以我想知道是否有人可以告诉我如何处理这个问题。
如果用户要求将第0行反转,那么所需的输出就会返回
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;
}
提前致谢!
答案 0 :(得分:0)
使用特定的行数和数组,我相信这将有效。试试看,让我知道。
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; }
}
答案 1 :(得分:0)
好的,首先,无论何时运行数据结构,都要尝试不使用它。 你在这里通过切换第一个和最后一个来改变数组,但是如果长度是奇数会发生什么?有一个案例你没有处理。 其次,你运行的是错误的索引,两个都是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;
}