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

embedded/2024/12/22 18:55:37/

#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; // 更新最小值的指针
       }
   // 交换最大值和第12个元素的位置
   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(((p+5*i+j)!=p)&&(*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(((p+5*i+j)!=(p+4)&&(p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))
                pmin=p+5*i+j;
    // 交换新的最小值和第20个元素的位置
    temp=*pmin;
    *pmin=*(p+20);
    *(p+20)=temp;
    // 重新设置最小值指针
    pmin=p+1;
    // 在剩余元素中寻找最后的最小值并交换
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            if(((p+5*i+j)!=(p+20)&&(p+5*i+j)!=(p+4)&&(p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))
                pmin=p+5*i+j;
    // 交换最后的最小值和第24个元素的位置
    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函数进行排序
    change(p);
    printf("排序后:");
    // 输出排序后的矩阵
    for(i=0;i<5;i++){
        for(j=0;j<5;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}
 


http://www.ppmy.cn/embedded/15116.html

相关文章

华为数字化转型与数据管理实践介绍(附PPT下载)

华为作为全球领先的信息与通信技术&#xff08;ICT&#xff09;解决方案提供商&#xff0c;在数字化转型和数据管理领域拥有丰富的实践经验和技术积累。其数字化转型解决方案旨在帮助企业通过采用最新的ICT技术&#xff0c;实现业务流程、组织结构和文化的全面数字化&#xff0…

2024-04-24 问AI: 在深度学习中,CUDA 是什么?

文心一言 在深度学习中&#xff0c;CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA公司开发的一种并行计算平台和编程模型。它的主要目的是利用GPU&#xff08;图形处理单元&#xff09;的强大计算能力来加速各种计算任务&#xff0c;包括深度学…

掌握未来通信技术:5G核心网基础入门

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;5GC笔记仓 朋友们大家好&#xff0c;本篇文章是我们新内容的开始&#xff0c;我们本篇进入5GC的学习&#xff0c;希望大家多多支持&#xff01; 目录 一.核心网的演进2G核心网2.5G核心网3G核心网4G…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Docker 安装 Mongo

创建宿主机目录 在你的宿主机上创建必要的目录来存储 MongoDB 的数据和配置文件。这样做可以保证即使容器被删除&#xff0c;数据也能得到保留。 mkdir -p /develop/mongo/data mkdir -p /develop/mongo/config创建 MongoDB 配置文件 创建一个名为 mongod.conf 的 MongoDB 配…

Xtrabackup导致主从延时问题

背景问题 公司数据库备份采用Xtrabackup&#xff0c; 备份期间会导致数据库实例产生主从延时&#xff0c;增加数据库告警数量。而且数据库主从延时会影响数据访问的准确性&#xff0c;延时期间如果主库发生故障&#xff0c;会有数据丢失的风险&#xff1b;延时也可能影响抽数等…

WebSocket发送与接收数据

创建websocket对象&#xff0c;参数为服务器websockets地址&#xff1a; websocket new WebSocket("ws:127.0.0.1:7001"); 1、发送文本数据 websocket.send(我太笨了&#xff0c;不知道你说的是啥) 2、发送对象数据 发送对象的话需要通过 JSON.parse() 和JSON.…

Golang | Leetcode Golang题解之第42题接雨水

题目&#xff1a; 题解: func trap(height []int) (ans int) {n : len(height)if n 0 {return}leftMax : make([]int, n)leftMax[0] height[0]for i : 1; i < n; i {leftMax[i] max(leftMax[i-1], height[i])}rightMax : make([]int, n)rightMax[n-1] height[n-1]for i…