矩阵顺逆时针旋转

对于 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];

猜你喜欢

转载自blog.csdn.net/henulmh/article/details/104317790