int,double,char类型的排序
2015-09-13 18:23
232 查看
//int排序 #include<stdio.h> #include<stdlib.h> int main() { int cmp ( const void *a , const void *b ); int num[5]; for(int i=0;i<5;i++) scanf("%d",&num[i]); qsort(num,5,sizeof(num[0]),cmp); for(int j=0;j<5;j++) printf("%d ",num[j]); printf("\n"); return 0; } int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; //升序排列。if(a>b) return true } //double排序 #include<stdio.h> #include<stdlib.h> int main() { int cmpe( const void *a , const void *b ); double a[5]; for(int i=0;i<5;i++) scanf("%lf",&a[i]); qsort(a,5,sizeof(a[0]),cmpe); for(int j=0;j<5;j++) printf("%lf ",a[j]); printf("\n"); return 0; } int cmpe( const void *a , const void *b ) { return *(double*)a>*(double*)b?1:-1;/*返回值的问题,显然cmp返回的是一个整型,所以避免double返回小数而被丢失。 所以来一个判断。*/ } //char 排序 #include<stdio.h> #include<stdlib.h> int main() { int cmp ( const void *a , const void *b ); char a[10]; for(int i=0;i<10;i++) { scanf("%c",&a[i]); } qsort(a,10,sizeof(a[0]),cmp); for(int j=0;j<10;j++) { while(a[j]==a[j+1]) { j++; }//如果有重复的字符就删除只输出一个 printf("%c",a[j]); } printf("\n"); return 0; } int cmp ( const void *a , const void *b ) { return (*(char*)a-*(char*)b); }
相关文章推荐
- 关于 安卓横竖屏的 项目中所遇到的问题
- UVa 307:Sticks(DFS+剪枝)
- 设计模式:原型模式
- 惠普实训生活-2
- 优先级与结合性
- 优化Android App性能?十大技巧
- 键索引计数法
- tomcat 7源代码调试环境搭建(一)
- 小案例-简易计算器
- 搭建hadoop环境,在win7的eclipse上远程操作(Linux上)hadoop2.6.0出错的一些总结
- 自动打包下载远程文件
- python数据挖掘
- 把自己当成打工的,一辈子都是打工的(太精彩了,怀着创业的心态,那么你在什么状态都可以叫创业,深入实践与学习就是创业,鼓励创业其实是鼓励创业的精神,成立公司只是一种形式,虚荣心没有意义)
- Qt时钟界面、数字时钟(12小时制24小时制切换、修改系统时间)
- Qt时钟界面、数字时钟(12小时制24小时制切换、修改系统时间)
- 第二周项目3 体验复杂度(2)
- 第100讲:使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor学习笔记
- python教程
- 设计模式-行为型之模板方法模式
- Hdu 5444 Elven Postman dfs