c语言指针和函数对数组A升序排序,函数指针作为函数參数,实现冒泡排序的升序排序和降序排序...
#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升序排序,函数指针作为函数參数,实现冒泡排序的升序排序和降序排序...相关推荐
- python中的记录指针_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...
- python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...
- R语言使用order函数按照两个数据列的值排序data.table数据(主变量降序排序、次变量升序排序)
R语言使用order函数按照两个数据列的值排序data.table数据(主变量降序排序.次变量升序排序) 目录
- R语言使用dplyr包的arrange函数进行dataframe排序、arrange函数基于一个字段(变量)进行降序排序实战
R语言使用dplyr包的arrange函数进行dataframe排序.arrange函数基于一个字段(变量)进行降序排序实战 目录
- 【Java】用sort实现对数组的升序和降序排序
Java 用 sort 实现对数组的升序和降序排序 一.ArrayList 的升序与降序 二.数组升序 三.数组降序 方法一 方法二 一.ArrayList 的升序与降序 升序:Collections ...
- 6-5 从键盘读入一串字符后去除首尾字符后的字符串按降序排序 (10 分)请编写函数Sort函数,将字符串中除首、尾字符外的其余字符按降序排列。函数接口定义:void Sort( char *
6-5 从键盘读入一串字符后去除首尾字符后的字符串按降序排序 (10 分) 请编写函数Sort函数,将字符串中除首.尾字符外的其余字符按降序排列. 函数接口定义: void Sort( char *p ...
- PHP中 如何将二位数组按某一个或多个字段值(升序/降序)排序?数字索引被重置,关联索引保持不变...
如何将二位数组按某一个或多个字段值(升序/降序)排序?数字索引被重置,关联索引保持不变 1.$arr=array( 2. array('id'=>1,'name'=>'will','age ...
- C 二维数组存入学生成绩 ,并求平均分,对平均分降序排序
**C 语言萌新一个,请各位大佬善待....**题目: 十位同学成绩为 t1,t2,t3,t4 ,键盘存入数据,求平均分,再降序排序.代码如下: #include<stdio.h> mai ...
- js:数组对象按key值进行升序降序排序
1.先定义一个数组对象 let arr=[{name:'李欣',age:'18'},{name:'王钊',age:'15'},{name:'李雪',age:'20'},{name:'李逍遥',age: ...
最新文章
- 摄像头定位:ICCV2019论文解析
- php性能优化分析工具XDebug 大型网站调试工具
- BZOJ 2668: [cqoi2012]交换棋子
- Hibernate 笔记4 实现对数据库的增删改查
- 2021年的高考大约多久可以查询成绩,2021高考完什么时候可以查分数 查成绩的时间...
- PhotoZoom专业版-图像无损放大工具
- java获取spring数据源_Spring动态注册多数据源的实现方法
- Spark开源学习模块
- Google 元素定制 T 恤
- C++ 顺序容器基础知识总结
- 科密a1无法连接数据库_科密考勤机系统老说数据库连接失败是什么原因?
- 软件测试 白盒测试用例设计方法动态 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)基本路径测试法
- Excel表格中保护公式不被修改
- 三角形周长最短问题_什么样的三角形周长最短
- 自学编程,他从阿里校招生到高级技术专家
- 【LM】电池电量水平低 保留电池电量 关键级别电池电量水平
- icc校色文件使用教程_使用ICC特性文件进行校色的方法
- 从感知机到Transformer,一文概述深度学习简史
- 亚马逊、Lazada、shopee、wish、ebay、速卖通、阿里国际站、mercari、newegg测评,补单自养号攻略(环境方案详解)
- 30岁以上,没人脉、没资源、工作不顺心、更没钱,这4个小生意,拿去就可以干,只要你肯努力,就可以翻身
热门文章
- SSH隧道本地转发远程转发
- DECENT iOS手机钱包使用教程
- BotVS开发基础—2.5 策略交互
- 传感器与测试技术搜题软件,【必备】自考《02202传感器与检测技术》历年真题及答案【23份】【更新至2021年4月题】...
- python-web自动化测试-验证码的处理(通过记录cookie,实现自动登录)
- 华师大计算机研究生学硕学费,2021年华东师范大学硕士研究生学费标准公示
- windows下VOT-toolkit环境配置
- 3大行业实践力受认可,4家客户入选卓越实践|奥哲入选中国低代码行业研究报告
- 世界上污染最严重的5片海洋
- BZOJ2245: [SDOI2011]工作安排