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

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

文章目录

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


代码实现

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

#include <stdio.h>

int main() {
    int a[4][5]; // 定义一个4行5列的二维数组

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

    // 按照列对数组进行排序
    for(int j=0;j<5;j++){ // 外层循环控制列
        for(int i=0;i<3;i++){ // 中层循环控制行,注意这里只需要到第3行,因为最后一行不需要排序
            for(int k=0;k<3-i;k++){ // 内层循环进行冒泡排序
                if(a[k][j] > a[k+1][j]){ // 如果当前元素大于下一个元素,则交换它们
                    int t = a[k][j]; // 临时变量用于交换
                    a[k][j] = a[k+1][j];
                    a[k+1][j] = 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. 数组定义与输入

    • int a[4][5];:定义了一个4行5列的二维数组a
    • 使用两层嵌套循环读取用户输入的20个整数,并存储到数组中。
  2. 排序逻辑

    • 外层循环for(int j=0;j<5;j++):遍历每一列。
    • 中层循环for(int i=0;i<3;i++):由于数组有4行,所以这里只需要到第3行,因为最后一行不需要参与排序。
    • 内层循环for(int k=0;k<3-i;k++):进行冒泡排序,比较并交换同一列中相邻的元素。
  3. 输出结果

    • 使用两层嵌套循环遍历并打印排序后的二维数组。

注意事项

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

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

相关文章:

  • NVMe(Non-Volatile Memory Express)非易失性存储器访问和传输协议
  • 直接映射缓存配置
  • 【Java基础知识系列】之Java类的初始化顺序
  • Array数组方法
  • Cellebrite VS IOS18Rebooting
  • spring boot整合https协议
  • 11月第2周AI资讯
  • 2.DHCP原理与配置
  • Vue 3 中的 v-bind 完全指南
  • 金融领域先锋!海云安成功入选2024年人工智能先锋案例集
  • docker busybox作为initContainers
  • nrm的安装及使用
  • http常⻅请求头和响应头详细讲解(笔记)
  • ESP解释
  • 开源项目工具:LeanTween - 为Unity 3D打造的高效缓动引擎详解(比较麻烦的API版)——实现物体抛物线移动
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue电脑在线装机指南教程网站【源码+文档】
  • 数据结构-线性表-具有独立头节点的双向循环链表
  • ACIS中wire与edge的区别是什么
  • Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
  • 位图和布隆过滤
  • 【Linux】内核调用栈打印函数dump_stack使用效果
  • 充电桩布局建设的智能趋势
  • c中柔性数组
  • AI开发-计算机视觉库-OpenCV
  • AVL树了解并简单实现
  • 产业与学术相互促进,2024年OEG海上能源博览会助力全球能源可持续发展