将一个5X5的矩阵中最大的元素放在中心, 4个角分别放4个最小的元素(顺序为从左到右,从上到下,从小到大存放)
其余数字从小到大
在以前的要求上更改了一下,其余数字从小到大排序
#include <stdio.h>
#include <string.h>int main()
{void print(int (*p)[5]); //输出函数void sort1(int *p); //排序函数(从小到大排序)
//void trans(int (*p)[5]) ;//排序函数(最大在中心,确定4角)void sort2(int *p);int array[5][5] = {{50,8,66,48,9},{3,44,66,49,99},{22,48,6,48,81},{5,43,54,6,7},{23,36,5,68,79}} ;printf("原始数组如下:\n"); print(array);printf("排序后数组如下:\n"); sort1(*array);
sort2(*array);print(array);return 0;}void sort1(int *p) //排序函数(从小到大排序){int temp,i,j;for(i=0;i<25;i++){for(j=0;j<24-i;j++){if(*(p+j)>*(p+j+1)){temp = *(p+j);*(p+j) = *(p+j+1);*(p+j+1) = temp;}}}}void sort2(int *p){int i,max,min2,min3,min4,temp;max = *(p+23);min2= *(p+1);min3= *(p+2);min4= *(p+3);for(i=24;i>3;i--){*(p+i) = *(p+i-1);}*(p+24) = min4;for(i=20;i>2;i--){*(p+i) = *(p+i-1);}*(p+20) = min3;for(i=23;i>12;i--){*(p+i) = *(p+i-1);}*(p+12) = max;temp=*(p+21);*(p+21)=*(p+20);
*(p+20)=temp;for(i=4;i>1;i--){*(p+i) = *(p+i-1);}*(p+4) = min2;}void print(int (*p)[5]) //输出函数
{int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++){printf("%4d", *(*(p+i)+j));}printf("\n");}
}
参考:https://arrow.blog.csdn.net/article/details/97513316?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.control