表示,答案还没看懂
程序代码:#include<stdio.h>
void change(int(*p)[5])
{
int m = 0, n = 0, m1 = 2, n1 = 2, m2 = 2, n2 = 2, m3 = 2, n3 = 2, m4 = 2, n4 = 2;
int i, j;
int t, t1, t2, t3, t4;
for (i = 0; i < 5; i++)
for (j = 0; j < 5; j++)
{
if (*(*(p + m) + n) < *(*(p + i) + j))
{
m = i;
n = j;
}
}
t = *(*(p + m) + n);
*(*(p + m) + n) = *(*(p + 2) + 2);
*(*(p + 2) + 2) = t;
for(i=0;i<5;i++)
for (j = 0; j < 5; j++)
{
if (*(*(p + m1) + n1) > *(*(p + i) + j))
{
m1 = i;
n1 = j;
}
}
t1 = *(*(p + m1) + n1);
*(*(p + m1) + n1) = *(*(p + 0) + 0);
*(*(p + 0) + 0) = t1;
for(i=0;i<5;i++)
for (j = 0; j < 5; j++)
{
if (*(*(p + m2) + n2) > *(*(p + i) + j) && *(*(p + i) + j) > *(*(p + 0) + 0))
{
m2 = i;
n2 = j;
}
}
t2 = *(*(p + m2) + n2);
*(*(p + m2) + n2) = *(*(p + 0) + 4);
*(*(p + 0) + 4) = t2;
for (i = 0; i<5; i++)
for (j = 0; j < 5; j++)
{
if (*(*(p + m3) + n3) > *(*(p + i) + j) && *(*(p + i) + j) > *(*(p + 0) + 4))
{
m3 = i;
n3 = j;
}
}
t3 = *(*(p + m3) + n3);
*(*(p + m3) + n3) = *(*(p + 4) + 0);
*(*(p + 4) + 0) = t3;
for (i = 0; i<5; i++)
for (j = 0; j < 5; j++)
{
if (*(*(p + m4) + n4) > *(*(p + i) + j) && *(*(p + i) + j) > *(*(p + 4) + 0))
{
m4 = i;
n4 = j;
}
}
t4 = *(*(p + m4) + n4);
*(*(p + m4) + n4) = *(*(p + 4) + 4);
*(*(p + 4) + 4) = t4;
}
void print(int(*p)[5])
{
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
printf("%5d ", *(*(p + i) + j));
printf("\n");
}
}
int main()
{
void change(int(*p)[5]);
void print(int(*p)[5]);
int a[5][5] = { {0,1,2,3,4},{5,6,7,8,9},{10,11,12,13,14},{15,16,17,18,19},{20,21,22,23,24} };
int(*p)[5];
p = a;
change(p);
print(p);
return 0;
}









