写一个函数实现:将一个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; // 更新最小值的指针
       }
   // 交换最大值和第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;
}
 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 10:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 10:14:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 10:14:04       82 阅读
  4. Python语言-面向对象

    2024-04-22 10:14:04       91 阅读

热门阅读

  1. 广州大学2023-2024学年第一学期《计算机网络》A卷

    2024-04-22 10:14:04       37 阅读
  2. SWCTF

    SWCTF

    2024-04-22 10:14:04      37 阅读
  3. 负载均衡原理及算法

    2024-04-22 10:14:04       33 阅读
  4. Sentinel

    Sentinel

    2024-04-22 10:14:04      34 阅读
  5. 阿里云难题学习笔记

    2024-04-22 10:14:04       29 阅读
  6. C#基础|数组的使用、字符串的分隔与连接

    2024-04-22 10:14:04       32 阅读
  7. 6、掌握对象在内存中的分配与变迁

    2024-04-22 10:14:04       36 阅读