#include <stdio.h>
int main()
{
void max_center_min_side(int a[5][5]);
int num[5][5];
int i,j;
printf("请输入5*5数组:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
scanf("%d",&num[i][j]);
}
max_center_min_side(num);
printf("调整后的数组:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",num[i][j]);
}
printf("\n");
}
return 0;
}
void max_center_min_side (int a[5][5])
{
int max,min,d,x,i,j,w,u,r,o,y,e,g,l,t; //找最大的数字
max=a[0][0];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(max<=a[i][j])
{
max=a[i][j];
d=i;
x=j;
}
}
}
min=a[0][0]; //找最小的数字
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(min>=a[i][j])
{
min=a[i][j];
w=i;
u=j;
}
}
}
min=a[0][0]; //找第二小数字
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(min>=a[i][j])
{
if(a[i][j]>a[w][u])
{
min=a[i][j];
r=i;
o=j;
}
if(a[i][j]==a[w][u]&&5*i+j<5*w+u)
{
min=a[i][j];
r=i;
o=j;
}
}
}
}
min=a[0][0]; //找第三小数字
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(min>=a[i][j])
{
if(a[i][j]>a[r][o])
{
min=a[i][j];
y=i;
e=j;
}
if(a[i][j]==a[r][o]&&5*i+j<5*r+o)
{
min=a[i][j];
y=i;
e=j;
}
}
}
}
min=a[0][0]; //找第四小的数字
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(min>=a[i][j])
{
if(a[i][j]>a[y][e])
{
min=a[i][j];
g=i;
l=j;
}
if(a[i][j]==a[y][e]&&((5*i+j)<(5*y+e)))
{
min=a[i][j];
g=i;
l=j;
}
}
}
}
t=a[d][x]; //将找到的值按顺序交换
a[d][x]=a[2][2];
a[2][2]=t;
t=a[w][u];
a[w][u]=a[0][0];
a[0][0]=t;
t=a[r][o];
a[r][o]=a[0][4];
a[0][4]=t;
t=a[y][e];
a[y][e]=a[4][0];
a[4][0]=t;
t=a[g][l];
a[g][l]=a[4][4];
a[4][4]=t;
}