题目是:将一个二维数组由外到内,由小到大,按顺时针方向进行排序,输出排序前后的数组
下面的是逆时针 怎么把它改成顺时针
#include
void print(int a[4][4]);
void sort(int *p);
void main()
{
int i,j;
int array[4][4];
for (i=0;i <4;i++)
{
printf(" input matrix:\n",i+1);
for(j=0;j <4;j++)
{
scanf("%d",&array[i][j]);
}
}
printf("\n input matrix :\n");
print(array);
sort(*array);
printf("\n output matrix:\n");
print(array);
}
void print(int a[4][4])
{
int i,j;
for (i=0;i <4;i++)
{
for(j=0;j <4;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
void sort(int *p)
{
int a[16];
int i,j,temp;
for (i=0;i <15;i++)
{
for(j=i+1;j <16;j++)
{
if(p[j] {
temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
}
for (i=0;i <16;i++)
{
a[i]=p[i];
}
for (i=3,j=0;i>=0,j <4;i--,j++)
{
p[i]=a[j];
}
for (i=4,j=4;i <=12,j <=6;i=i+4,j++)
{
p[i]=a[j];
}
for (i=13,j=7;i <=15,j <=9;i++,j++)
{
p[i]=a[j];
}
p[11]=a[10];
for (i=7,j=11;i>=5,j <=13;i--,j++)
{
p[i]=a[j];
}
p[9]=a[14];
p[10]=a[15];
}