又叫逆旋矩阵,是n×n阶的矩阵,
1 20 19 18 17 16
2 21 22 23 24 15
3 36 35 34 25 14
4 31 32 33 26 13
5 30 29 28 27 12
6 7 8 9 10 11
这就是一个6×6的内旋矩阵,按照1,2,3,4,5,6,7,8,9,10,11... ...这样的
用的是二维数组解的
可以看一下这个程序:(已调试通过)
#include <stdio.h>
void main()
{
int data[10][10];
int n = 6;
int start, bound,k;
int i = 0;
int j = 0;
int loop = 0;
for(k = 1; k <= n*n; k++) {
data[i][j] = k;
bound = n - loop - 1;
start = loop;
if (i == start) {//left to right
if (j < bound) j ++;
else i ++;
}else if ((j == bound) && (i != bound)) {
if (i < bound) i ++;
else j ++;
}else if ((i == bound) && (j != start)) {
if (j > start) j --;
else i ++;
}else if ((j == start) && (i != start)) {
if (i > start+1) i --;
else j++, loop++;
}
}
for (i = 0; i < n ; i ++) {
for (j = 0; j < n; j++)
printf ("%4d",data[i][j]);
printf("\n");
}
}