将一个5X5矩阵中最大的元素放在中心,4个角分别放4个最小的元素,写一函数实现之!
#include<stdio.h>
int main()
{
void change(int *);
int i,j,*p,a[5][5];
printf("please input martix:/n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p=&a[0][0];
change(p);
printf("the output marix:/n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%4d",a[i][j]);
}
printf("/n");
}
return 0;
}
void change(int *p)
{
int temp,i,j;
int *pmin,*pmax;
pmin=p;
pmax=p;
for(i=0;i<5;i++)
for(j=i;j<5;j++)
{
if(*pmin>*(p+5*i+j)) pmin=p+5*i+j;
if(*pmax<*(p+5*i+j)) pmax=p+5*i+j;
}
temp=*(p+12);
*(p+12)=*pmax;
*pmax=temp;
temp=*p;
*p=*pmin;
*pmin=temp;
pmin=p+1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if((i==0)&&(j==0)) continue;
if(*pmin>*(p+5*i+j)) 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(((i==0)&&(j==0))||((i==0)&&(j==4))) continue;
if(*pmin>*(p+5*i+j)) 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(((i==0)&&(j==0))||((i==0)&&(j==4))||((i==4)&&(j==0))) continue;
if(*pmin>*(p+5*i+j)) pmin=p+5*i+j;
}
temp=*pmin;
*pmin=*(p+24);
*(p+24)=temp;
}