簡體   English   中英

如何反轉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反轉,則它將返回

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;
}

提前致謝!

使用特定的行num和數組,我相信這會起作用。 試試看,讓我知道。

 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM