当前位置: 首页 > article >正文

【C语言】实现二维数组按行排序

文章目录

    • 代码实现
    • 代码解释
    • 注意事项


代码实现

下面是一个简单的C语言程序,它读取用户输入的4行5列的二维数组,并按照列对数组进行排序。

#include <stdio.h>

int main() {
    int a[4][5];
    // 读取用户输入的二维数组
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 5; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    // 按照列对数组进行排序
    for(int i=0; i<4; i++){
        for(int k=0; k<4; k++){ // 注意这里的循环条件应该是k<4,因为数组下标从0开始
            for(int m=0; m<4-k-1; m++){ // 内层循环应该使用4-k-1作为上限,以避免重复交换
                if(a[m][i] > a[m+1][i]){ // 比较同一列的元素
                    int t = a[m][i];
                    a[m][i] = a[m+1][i];
                    a[m+1][i] = t;
                }
            }
        }
    }

    // 输出排序后的数组
    printf("\n按照列排序之后:.....\n");
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 5; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }

    return 0;
}

代码解释

  1. 数组定义与输入:首先定义了一个4行5列的二维数组a[4][5],并使用嵌套循环读取用户输入的20个整数。

  2. 排序逻辑:使用三重循环对数组的每一列进行冒泡排序。外层循环遍历每一列,中间循环控制排序的行数,内层循环进行冒泡排序的比较和交换操作。

  3. 输出结果:最后,使用嵌套循环遍历并打印排序后的二维数组。

注意事项

  • 在排序逻辑中,内层循环的上限应该是4-k-1,因为数组下标从0开始,且每完成一次排序,最大的元素会被放置在正确的位置,不需要再次参与比较。
  • 比较和交换操作应该针对同一列的元素进行,即a[m][i]a[m+1][i]
    在这里插入图片描述

http://www.kler.cn/a/397339.html

相关文章:

  • [Linux]多线程详解
  • pytest在conftest.py中实现用例执行失败进行截图并附到allure测试报告
  • Azure pipeline 通过git命令修改文件
  • 《Django 5 By Example》阅读笔记:p105-p164
  • css:浮动
  • 单片机智能家居火灾环境安全检测
  • Matter1.4重磅来袭,智能家居进入“互联”新纪元
  • 电脑怎么自动切换IP地址
  • FFmpeg源码:avio_read_partial函数分析
  • 无线网络信号 6G、5G和2.4G 的一些小科普
  • 一文了解 node 包管理工具: npm npx nvm nrm
  • 力扣 回文链表-234
  • LLMs之Agent:Magentic-One的简介、安装和使用方法、案例应用之详细攻略
  • 最终用途声明
  • 【C#】C#编程入门指南:构建你的.NET开发基础
  • 网络设备驱动与网络子系统,有区别吗?
  • Python 打包教程:从零开始构建可分发的Python包
  • 【ORACLE战报】2024年10月OCP考试战报
  • 在使用 Navicat 操作 MongoDB 时,进行 CRUD(创建、读取、更新、删除)操作的基本语法如下:
  • 《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配
  • 机器学习day3-KNN算法、模型调优与选择
  • 【GeekBand】C++设计模式笔记11_Builder_构建器
  • java Collections 详解
  • 第22章 企业级Docker虚拟化平台实战
  • Java StringBuilder详解
  • 数据结构《栈和队列》