#include

#define N 10//定义数组元素个数

int Ascending(int a,int b);//升序排列的函数声明

int Descending(int a,int b);//降序排列的函数声明

void swap(int*,int*);//交换数据的函数声明

void BubbleSort(int a[],int n,int (*compare)(int,int));//声明排序函数,通过函数指针作为函数调用

void Display(int a[],int n);//输出数组元素的函数声明

void main()

{

int a[N]={12,34,21,46,89,54,26,8,6,17};

int flag;

while(1)

{

printf("输入1:从小到大排序。\n输入2:从大到小排序\n输入3:退出!

\n");

scanf("%d",&flag);

switch(flag)

{

case 1:

printf("排序前的数据为:");

Display(a,N);

BubbleSort(a,N,Ascending);//从小到大排序。将函数作为參数传递

printf("从小到大排列后的数据为:");

Display(a,N);

break;

case 2:

printf("排序前的数据为:");

Display(a,N);

BubbleSort(a,N,Descending);//从大到小排序。将函数作为參数传递

printf("从大到小排列后的数据为:");

Display(a,N);

break;

case 3:

return;

break;

default:

printf("输入数据不合法,请又一次输入。\n");

break;

}

}

}

//冒泡排序,将函数作为參数传递,推断是从小到大还是从大到小排序

void BubbleSort(int a[],int n,int(*compare)(int,int))

{

int i,j;

for(i=0;i

{

for(j=0;j

if((*compare)(a[j],a[j+1]))

swap(&a[j],&a[j+1]);

}

}

//交换数组的元素

void swap(int *a,int *b)

{

int t;

t=*a;

*a=*b;

*b=t;

}

//推断相邻数据的大小,假设前者大,升序排列须要交换

int Ascending(int a,int b)

{

if(a>b)

return 1;

else

return 0;

}

//推断相邻数据的大小,假设前者大,降序排列须要交换

int Descending(int a,int b)

{

if(a

return 1;

else

return 0;

}

void Display(int a[],int n)//输出数据元素

{

int i;

for(i=0;i

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

printf("\n");

}

程序执行结果

时间: 07-08

c语言指针和函数对数组A升序排序,函数指针作为函数參数,实现冒泡排序的升序排序和降序排序...相关推荐

  1. python中的记录指针_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...

  2. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...

  3. R语言使用order函数按照两个数据列的值排序data.table数据(主变量降序排序、次变量升序排序)

    R语言使用order函数按照两个数据列的值排序data.table数据(主变量降序排序.次变量升序排序) 目录

  4. R语言使用dplyr包的arrange函数进行dataframe排序、arrange函数基于一个字段(变量)进行降序排序实战

    R语言使用dplyr包的arrange函数进行dataframe排序.arrange函数基于一个字段(变量)进行降序排序实战 目录

  5. 【Java】用sort实现对数组的升序和降序排序

    Java 用 sort 实现对数组的升序和降序排序 一.ArrayList 的升序与降序 二.数组升序 三.数组降序 方法一 方法二 一.ArrayList 的升序与降序 升序:Collections ...

  6. 6-5 从键盘读入一串字符后去除首尾字符后的字符串按降序排序 (10 分)请编写函数Sort函数,将字符串中除首、尾字符外的其余字符按降序排列。函数接口定义:void Sort( char *

    6-5 从键盘读入一串字符后去除首尾字符后的字符串按降序排序 (10 分) 请编写函数Sort函数,将字符串中除首.尾字符外的其余字符按降序排列. 函数接口定义: void Sort( char *p ...

  7. PHP中 如何将二位数组按某一个或多个字段值(升序/降序)排序?数字索引被重置,关联索引保持不变...

    如何将二位数组按某一个或多个字段值(升序/降序)排序?数字索引被重置,关联索引保持不变 1.$arr=array( 2. array('id'=>1,'name'=>'will','age ...

  8. C 二维数组存入学生成绩 ,并求平均分,对平均分降序排序

    **C 语言萌新一个,请各位大佬善待....**题目: 十位同学成绩为 t1,t2,t3,t4 ,键盘存入数据,求平均分,再降序排序.代码如下: #include<stdio.h> mai ...

  9. js:数组对象按key值进行升序降序排序

    1.先定义一个数组对象 let arr=[{name:'李欣',age:'18'},{name:'王钊',age:'15'},{name:'李雪',age:'20'},{name:'李逍遥',age: ...

最新文章

  1. 摄像头定位:ICCV2019论文解析
  2. php性能优化分析工具XDebug 大型网站调试工具
  3. BZOJ 2668: [cqoi2012]交换棋子
  4. Hibernate 笔记4 实现对数据库的增删改查
  5. 2021年的高考大约多久可以查询成绩,2021高考完什么时候可以查分数 查成绩的时间...
  6. PhotoZoom专业版-图像无损放大工具
  7. java获取spring数据源_Spring动态注册多数据源的实现方法
  8. Spark开源学习模块
  9. Google 元素定制 T 恤
  10. C++ 顺序容器基础知识总结
  11. 科密a1无法连接数据库_科密考勤机系统老说数据库连接失败是什么原因?
  12. 软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法
  13. Excel表格中保护公式不被修改
  14. 三角形周长最短问题_什么样的三角形周长最短
  15. 自学编程,他从阿里校招生到高级技术专家
  16. 【LM】电池电量水平低 保留电池电量 关键级别电池电量水平
  17. icc校色文件使用教程_使用ICC特性文件进行校色的方法
  18. 从感知机到Transformer,一文概述深度学习简史
  19. 亚马逊、Lazada、shopee、wish、ebay、速卖通、阿里国际站、mercari、newegg测评,补单自养号攻略(环境方案详解)
  20. 30岁以上,没人脉、没资源、工作不顺心、更没钱,这4个小生意,拿去就可以干,只要你肯努力,就可以翻身

热门文章

  1. SSH隧道本地转发远程转发
  2. DECENT iOS手机钱包使用教程
  3. BotVS开发基础—2.5 策略交互
  4. 传感器与测试技术搜题软件,【必备】自考《02202传感器与检测技术》历年真题及答案【23份】【更新至2021年4月题】...
  5. python-web自动化测试-验证码的处理(通过记录cookie,实现自动登录)
  6. 华师大计算机研究生学硕学费,2021年华东师范大学硕士研究生学费标准公示
  7. windows下VOT-toolkit环境配置
  8. 3大行业实践力受认可,4家客户入选卓越实践|奥哲入选中国低代码行业研究报告
  9. 世界上污染最严重的5片海洋
  10. BZOJ2245: [SDOI2011]工作安排