将一个5*5的矩阵中最大的元素放在中心,4个角分别放在4个最小的元素
#include <stdio.h>
void sort(int (*p)[5],int n)
{
int i,j,u,k,t,r;
for(r=0; r<4; r++) // 4个角分别放4个最小的元素
{
u=0;
k=1;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if((r==1||r==2||r==3)&&(i==0&&j==0))
continue;
if((r==2||r==3)&&(i==0&&j==n-1))
continue;
if(r==3&&(i==n-1&&j==0))
continue;
if(p[i][j]<p[u][k])
{
u=i;
k=j;
}
}
}
if(r==0)
{
t=p[0][0];
p[0][0]=p[u][k];
p[u][k]=t;
}
if(r==1)
{
t=p[0][n-1];
p[0][n-1]=p[u][k];
p[u][k]=t;
}
if(r==2)
{
t=p[n-1][0];
p[n-1][0]=p[u][k];
p[u][k]=t;
}
if(r==3)
{
t=p[n-1][n-1];
p[n-1][n-1]=p[u][k];
p[u][k]=t;
}
}
k=0; //最大的元素放在中心
u=0;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(p[i][j]>p[u][k])
{
u=i;
k=j;
}
}
}
t=p[n/2][n/2];
p[n/2][n/2]=p[u][k];
p[u][k]=t;
}
int main()
{
int a[5][5],(*p)[5],i,j;
p=a;
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
scanf("%d",&p[i][j]);
}
}
void sort(int (*p)[5],int n);
sort(p,5);
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
printf("%3d",p[i][j]);
}
printf("\n");
}
return 0;
}