2016-03-30 2 views
0

これについてはかなり新しいですが、私の頭の中でこれを囲むことができません。誰かが私にアイデアを与えることができれば、私は思っていたので、私は特定の行のためにそれをやっについてのオンライン何かを見つけるためにstugglingています、私は特定の行を逆転しようとしています4x4アレイの行を逆にする方法

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

:私は基本的にのような4×4アレイを与えられています私がこれにどのようにアプローチできるかについて。ユーザーは、その後反転させる行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

アレイは、次いで、「行」である反転、それが配列の配列である場合、4×4 –

+2

として示すことを意味する数字の長い線として出てい単に特定の配列を逆転させるだけです。 [配列を逆にする]方法に関する情報はたくさんあります(http://stackoverflow.com/questions/2137755/how-do-i-reverse-an-int-array-in-java)。 – KevinO

+0

あなたのコードは大丈夫です。あなたは、与えられたコードでどんなエラー/問題があるのか​​を知りたいですか? – user2004685

答えて

0

データ構造上で実行しているときはまず、その作業をしないでください。 ここでは、最初と最後を切り替えて配列を変更していますが、長さが奇数の場合はどうなりますか?あなたが処理しなかったケースがあります。 は、第二に、あなたは私が1次元配列とスイッチを救うだろう...これが正方形ではなかった場合、それはまた、バグを持っているでしょう [i]は.LENGTH == arr.length、間違ったインデックスに

を両方ARRを実行していますインデックスに問題がある場合は、それを使用してください。

このコードを使用してみてください:

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

特定の行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; } 

} 
+0

'final int [] a = arr [row_num]'を設定し、 'a'を使用します。そのような冗長さの必要はありません。 –

+0

Chrisさんにお礼ありがとうございました!助けようとしたみんなに感謝します –

関連する問題