写一个函数实现:将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放)之解法改写

#include<stdio.h>

void change(int *p){

int i,j,temp;

int *pmax,*pmin;

// 初始化最大值和最小值的指针

pmax=p;

pmin=p;

// 遍历矩阵,寻找最大和最小值

for(i=0;i<5;i++)

for(j=i;j<5;j++)

{

if(*pmax<*(p+5*i+j))pmax=p+5*i+j;

if(*pmin>*(p+5*i+j))pmin=p+5*i+j;

}

// 交换最大值和特定位置的元素

temp=*(p+12);

*(p+12)=*pmax;

*pmax=temp;

// 交换最小值和起始位置的元素

temp=*p;

*p=*pmin;

*pmin=temp;

pmin=p+1;

// 第二次遍历,寻找次小值并放置到特定位置

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

if(i==0&&j==0)continue; // 跳过起始位置

if(*pmin>*(p+5*i+j))pmin=p+5*i+j;

}

// 交换次小值和特定位置的元素

temp=*pmin;

*pmin=*(p+4);

*(p+4)=temp;

pmin=p+1;

// 第三次遍历,进一步确定并交换次小值的位置

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

if((i==0&&j==0)||(i==0&&j==4))continue; // 跳过起始位置和特定位置

if(*pmin>*(p+5*i+j))pmin=p+5*i+j;

}

// 交换确定的次小值和特定位置的元素

temp=*pmin;

*pmin=*(p+20);

*(p+20)=temp;

pmin=p+1;

// 第四次遍历,最后确定并交换次小值的位置

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

if((i==0&&j==0)||(i==0&&j==4)||(i==4&&j==0))continue; // 跳过已确定的位置

if(*pmin>*(p+5*i+j))pmin=p+5*i+j;

}

// 交换确定的次小值和最后一个特定位置的元素

temp=*pmin;

*pmin=*(p+24);

*(p+24)=temp;

}

/**

* 主函数,用于输入矩阵数据并调用change函数进行排序,最后输出排序后的矩阵。

*/

int main(){

int a[5][5],*p,i,j;

printf("请输入矩形:");

// 输入矩阵元素

for(i=0;i<5;i++)

for(j=0;j<5;j++)

scanf("%d",&a[i][j]);

p=&a[0][0]; // 获取矩阵的首地址

change(p); // 调用排序函数

printf("排序后:");

// 输出排序后的矩阵

for(i=0;i<5;i++){

for(j=0;j<5;j++)

printf("%d ",a[i][j]);

printf("\n");

}

return 0;

}

相关推荐
CHANG_THE_WORLD16 分钟前
if条件语句 三目运算符 汇编分析
汇编·算法·条件语句·if 语句·汇编分析·条件语句汇编分析
tumu_C17 分钟前
无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [二]
开发语言·c++·算法
web安全工具库23 分钟前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化
海蓝可知天湛42 分钟前
利用Genspark自定义智能体:算法竞赛测试数据反推与生成工具
算法·aigc
BothSavage1 小时前
Qwen3-VL-8B-Instruct推理测试transformer+sglang双版本
算法
尤超宇1 小时前
YOLOv3 目标检测算法核心技术
算法·yolo·目标检测
QuantumLeap丶1 小时前
【数据结构:从0-1】-01-数据结构介绍及学习路线规划
数据结构
云泽8081 小时前
C/C++内存管理详解:从基础原理到自定义内存池原理
java·c语言·c++
润 下1 小时前
C语言——深入解析C语言指针:从基础到实践从入门到精通(四)
c语言·开发语言·人工智能·经验分享·笔记·程序人生·其他
cyclel1 小时前
散列表的小想法
算法