表示,答案还没看懂
程序代码:
#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; }