题目
定义一个n*n的二维数组1到9,利用代码将数组顺时针旋转90°,180°和270°
1.定义两个二维数组分别存储旋转前后的矩阵.
public class Main { public static void main(String[] args){ int arr[][]={{1,2,3}, {4,5,6}, {7,8,9}}; int n=3; int[][] array=new int[n][n];2.旋转90°
for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { result[j][n - 1 - i] = matrix[i][j]; } }将(i,j)的元素存储到(j,n-1-i)中n-1是最后一列的下标-i是因为填完一行后要向左移i行
3.旋转180°
for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ array[n-1-i][n-1-j]=arr[i][j]; } }将(i,j)的元素储存到(n-1-i,n-1-j)中。
4.旋转270°
for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { array[n - 1 - j][i] = arr[i][j]; } }将(i,j)的元素储存到(n-1-j,i)中,与旋转90°刚好相反。
5.利用双层循环遍历数组输出旋转后的结果
for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ System.out.print(array[i][j]+" "); } System.out.println(); }注:每输出一行后要换行。