//将一个N*N的矩阵逆转90度
#include <stdio.h>
// 交换两个数
void swap(int *p1, int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
//必须指明数组长度
void Reverse90(int (&b)[2][2], int len)
{
int i,j;
for(i=0; i<len/2; ++i)
{
//转置矩阵
for(j=i+1; j<len/2; j++)
swap(&b[i][j],&b[j][i]);
//每行对半交换
for(j=0; j<len/2/2; j++)
swap(&b[i][j],&b[i][len/2-1-j]);
}
}
int main(void)
{
int a[2][2] = {1,2,3,4};
Reverse90(a,4);
int i;
for(i=0; i<4; ++i)
printf("%d ",*(*a+i));
return 0;
}