问题遇到的现象和发生背景
无法获取想要的结果
问题相关代码,请勿粘贴截图
#include <stdio.h>
int main()
{ void find(int *p);
int a[5][5],*num,i,j;
printf("please enter matrix:\n");
for(i=0;i<5;i++)
scanf("%d %d %d %d %d",&a[i][1],&a[i][2],&a[i][3],&a[i][4],&a[i][5]);
num=&a[0][0];
find(a);
printf("Now,matrix:\n");
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
void find(int *p)
{ int max=0,i,j,min=0,temp;
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{if(*(p+max)<*(p+i*5+j)) max=i*5+j;
if(*(p+min)<*(p+i*5+j)) min=i*5+j;}//寻找最大值和最小值;
temp=*(p+max);
*(p+max)=*(p+13);
*(p+13)=temp;
temp=*(p);
*(p)=*(p+min);
*(p+min)=temp;
for(i=0,min=0;i<=4;i++)
for(j=0;j<=4;j++)
if( ( *(p+min)<*(p+i*5+j) ) && ( *(p+min)>*(p) )) min=i*5+j;
temp=*(p+4);
*(p+4)=*(p+min);
*(p+min)=temp;
for(i=0,min=0;i<=4;i++)
for(j=0;j<=4;j++)
if( ( *(p+min)<*(p+i*5+j) ) && ( *(p+min)>*(p) ) && (*(p+min)>*(p+4))) min=i*5+j;
temp=*(p+20);
*(p+20)=*(p+min);
*(p+min)=temp;
for(i=0,min=0;i<=4;i++)
for(j=0;j<=4;j++)
if( ( *(p+min)<*(p+i*5+j) ) && ( *(p+min)>*(p) ) && (*(p+min)>*(p+4)) && (*(p+min)>*(p+20))) min=i*5+j;
temp=*(p+24);
*(p+24)=*(p+min);
*(p+min)=temp;
}