#include<stdio.h>
void main()
{
 void change(int x[][5]);
 int a[5][5]={{100,99,98,97,96},{95,94,93,92,91},{90,89,88,87,86},{85,84,83,82,81},{80,79,78,77,76}};
 int i,j;
 printf("转换前:\n");
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   printf("%4d",a[i][j]);
  printf("\n");
 }
 change(a);/*调用函数*/
 printf("转换后:\n");
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   printf("%4d",a[i][j]);
  printf("\n");
 }
}
void change(int x[][5])
{
 int b[25],i,j,k=0,t;
 for(i=0;i<5;i++)/*把二维数组中元素按行的顺序存放到一维数组*/
  for(j=0;j<5;j++)
  {
   b[k]=x[i][j];
   k++;
  }
  for(i=0;i<24;i++)/*选择排序法,对一维数组中元素进行从小到大的排序*/
  {
   k=i;
   for(j=i+1;j<25;j++)
    if(b[j]<b[k])
     k=j;
    if(k!=i)
    {
     t=b[k];
     b[k]=b[i];
     b[i]=t;
    }
  }
 for(i=0;i<5;i++)
  for(j=0;j<5;j++)
   if(x[i][j]==b[24])
   {
    t=x[i][j];
    x[i][j]=x[2][2];
    x[2][2]=t;
    break;
   }
   for(i=0;i<5;i++)
     for(j=0;j<5;j++)
    if(x[i][j]==b[0])
    {
    t=x[i][j];
    x[i][j]=x[0][0];
    x[0][0]=t;
     break;
    }
 for(i=0;i<5;i++)
       for(j=0;j<5;j++)
    if(x[i][j]==b[1])
    {
    t=x[i][j];
    x[i][j]=x[0][4];
    x[0][4]=t;
     break;
    }
 for(i=0;i<5;i++)
        for(j=0;j<5;j++)
    if(x[i][j]==b[2])
    {
    t=x[i][j];
    x[i][j]=x[4][0];
    x[4][0]=t;
     break;
    }
 for(i=0;i<5;i++)
         for(j=0;j<5;j++)
    if(x[i][j]==b[3])
    {
    t=x[i][j];
    x[i][j]=x[4][4];
    x[4][4]=t;
     break;
    }
} 
C++代码:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
 void change(int x[][5]);
 int a[5][5]={{100,99,98,97,96},{95,94,93,92,91},{90,89,88,87,86},{85,84,83,82,81},{80,79,78,77,76}};
 int i,j;
 cout<<"转换前:"<<endl;
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   cout<<setw(4)<<a[i][j];
  cout<<endl;
 }
 change(a);/*调用函数*/
 cout<<"转换后:"<<endl;
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   cout<<setw(4)<<a[i][j];
  cout<<endl;
 }
 return 0;
}
void change(int x[][5])
{
 int b[25],i,j,k=0,t;
 for(i=0;i<5;i++)/*把二维数组中元素按行的顺序存放到一维数组*/
  for(j=0;j<5;j++)
  {
   b[k]=x[i][j];
   k++;
  }
  for(i=0;i<24;i++)/*选择排序法,对一维数组中元素进行从小到大的排序*/
  {
   k=i;
   for(j=i+1;j<25;j++)
    if(b[j]<b[k])
     k=j;
    if(k!=i)
    {
     t=b[k];
     b[k]=b[i];
     b[i]=t;
    }
  }
 for(i=0;i<5;i++)
  for(j=0;j<5;j++)
   if(x[i][j]==b[24])
   {
    t=x[i][j];
    x[i][j]=x[2][2];
    x[2][2]=t;
    break;
   }
   for(i=0;i<5;i++)
     for(j=0;j<5;j++)
    if(x[i][j]==b[0])
    {
    t=x[i][j];
    x[i][j]=x[0][0];
    x[0][0]=t;
     break;
    }
 for(i=0;i<5;i++)
       for(j=0;j<5;j++)
    if(x[i][j]==b[1])
    {
    t=x[i][j];
    x[i][j]=x[0][4];
    x[0][4]=t;
     break;
    }
 for(i=0;i<5;i++)
        for(j=0;j<5;j++)
    if(x[i][j]==b[2])
    {
    t=x[i][j];
    x[i][j]=x[4][0];
    x[4][0]=t;
     break;
    }
 for(i=0;i<5;i++)
         for(j=0;j<5;j++)
    if(x[i][j]==b[3])
    {
    t=x[i][j];
    x[i][j]=x[4][4];
    x[4][4]=t;
     break;
    }
}