求旋转矩阵代码

来源:百度知道 编辑:UC知道 时间:2024/05/14 07:16:57
比如输入4 就显示
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

//作者:baihacker
//时间:1.3.2007
呵,以前写的,比较容易懂
#include<stdio.h>

#define N 10

void main()
{
int n;
int i, j, k, t;
int a[N][N];

puts("input n:");
scanf("%d", &n);
if (n<1 || n>9)
{
puts("error");
return;
}

t = 1;
for (i=1;i<=(n-1)/2+1;i++)
{
j=i-1;
for (k=j;k<n-j;k++)
a[j][k] = t++;
for (k=j+1;k<n-j;k++)
a[k][n-j-1] = t++;
for (k=n-j-2;k>=j;k--)
a[n-j-1][k] = t++;
for (k=n-j-2;k>j;k--)
a[k][j] = t++;
}

for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%d\t",a[i][j]);
puts("\n");
}
}

定义数组m[4][4]={ {0,-1,0,-1},{0,-1,1,1},{1,1,0,-1},{1,1,1,1} },use[2][2]={ {0,1},{1,0} };
设原数组A,对i=0-1,j=0-3循环则
A[m[j][0]*h-m[con][1]*use[i][0]]
[