对于 n*n的矩阵,若将其顺时针旋转90度
如用另一个矩阵承接
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
t[i][j]=a[j][n-1-i];
若在自身的基础上直接变化,则通过观察可发现变化为:
故代码为:
for(int i=1;i<=n/2;i++)//下标从1开始
{
for(int j=1;j<n-i+1;j++)
{
t=a[i][j];
a[i][j]=a[n-j+1][i];
a[n-j+1][i]=a[n-i+1][n-j+1];
a[n-i+1][n-j+1]=a[j][n-i+1];
a[j][n-i+1]=t;
}
}
若逆时针旋转90度
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
t[i][j]=a[n-j-1][i];