将一个5X5的矩阵中最大的元素放在中心, 4个角分别放4个最小的元素(顺序为从左到右,从上到下,从小到大存放)其余数字从小到大

将一个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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值