[英]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.