将一个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.youkuaiyun.com/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