到下顺序存放)
#include<iostream> //到底有什么错误啊?我找了好久也没找出来
using namespace std;
int main()
{ void change(int*);
int a[5][5],i=0,j=0;
for(;i<5;i++)
for(;j<5;j++)cin>>a[i][j];
int*p=&a[0][0];
change(p);
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
cout<<a[i][j]<<" ";cout<<endl;}
return 0;
}
void change(int*p)
{
int i,j,temp,*pmax,*pmin;
pmax=p;
pmin=p;
for(i=0;i<5;i++) //不重复比较和交换
for(j=0;j<5;j++)
{ if(*pmax<*(p+5*i+j))pmax=p+5*i+j;
else if(*pmin>*(p+5*i+j))pmin=p+5*i+j;
}
temp=*pmax;
*pmax=*(p+12);
*(p+12)=temp;
temp=*pmin;
*pmin=*p;
*p=temp;
pmin=p+1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(*pmin>*(p+5*i+j)&&(p+5*i+j)!=p)pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+4);
*(p+4)=temp;
pmin=p+1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if((*pmin>*(p+5*i+j))&&((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4)))pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+20);
*(p+20)=temp;
pmin=p+1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(*pmin>*(p+5*i+j)&&((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&((p+5*i+j)!=(p+20)))pmin=p+5*i+j;
temp=*pmin;
*pmin=*(p+24);
*(p+24)=temp;
}