這些是我的循環語句。第一個循環顯示非旋轉塊,而第二個循環旋轉並以n(用戶輸入)次顯示二維數組。我的問題是,二維數組將旋轉一次,但不會旋轉第三次和以後的時間。每次顯示時,我都希望我的二維數組順時針旋轉90度。如何順時針旋轉3x3二維陣列n次
rot = x.nextInt(); //user input for n rotations
//initial block
System.out.println("1");
for(i=0; i<block.length; i++)
{
for(j=0; j<block[i].length; j++)
System.out.print(block[i][j]+"\t");
System.out.println();
}
//rotated block
for(cnt=2; cnt<=rot; cnt++)
{
System.out.println(cnt);
for(i=0; i<block.length; i++){
for(j=block.length-1; j>=0; j--){
newBlock[i][j] = block[j][i];
System.out.print(newBlock[i][j]+"\t");
}
System.out.println();
}
}
您繼續旋轉*原始*'塊'。您需要旋轉之前操作中的塊,例如通過將'newBlock'複製到'cnt'循環末尾的'block'。 – Andreas
您只需旋轉原始數組。 –
此外,您的代碼正在做轉置,而不是旋轉。 –