C语言中qsort函数做排序的用法
2015-06-13 13:59
344 查看
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int s[10000],n,i;
int cmp(const void *a, const void *b) //这定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。
{
return(*(int*)a-*(int *)b); // 先把a这个指针强制定义成int型指针,然后在取a所指向的常量
}
int main()
{
scanf("%d",&n); //输入所需要排序的整数的个数
for(i=0;i<n;i++)
scanf("%d",&s[i]); //给数组赋值
qsort(s,n,sizeof(s[0]),cmp); 利用qsort 函数得到排序结果
for(i=0;i<n;i++)
printf("%d ",s[i]); 打印出来排序的结果
return(0);
}
#include <string.h>
#include <stdlib.h>
int s[10000],n,i;
int cmp(const void *a, const void *b) //这定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。
{
return(*(int*)a-*(int *)b); // 先把a这个指针强制定义成int型指针,然后在取a所指向的常量
}
int main()
{
scanf("%d",&n); //输入所需要排序的整数的个数
for(i=0;i<n;i++)
scanf("%d",&s[i]); //给数组赋值
qsort(s,n,sizeof(s[0]),cmp); 利用qsort 函数得到排序结果
for(i=0;i<n;i++)
printf("%d ",s[i]); 打印出来排序的结果
return(0);
}
相关文章推荐
- 【C语言】实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。
- 【C语言】字符串右循环移位
- 关于.h文件和.cpp文件
- C#给C++传参的兼容问题
- Effective C++ 条款37解读:绝不重新定义继承而来的缺省参数值(2012年某公司笔试试题)
- leetcode 日经贴,Cpp code -Invert Binary Tree
- C# 调用C++链接库与回调
- C语言的左位移能不能超过8位?
- C++标准库中sstream与strstream的区别详细解析
- (2)风色从零单排《C++ Primer》 一个简单的书店程序
- LIS 最长上升子序列问题 nlgn时间打印其中一个序列
- 在c++程序中调用被c编译器编译后的函数为什么要加extern “C”
- 《C/C++工程师综合练习卷》
- 《C/C++工程师综合练习卷》
- c++的运算符及其优先级
- bit-map简介及其C/C++代码实现
- C++STL中vector容器的用法
- NYOJ 58 最少步数(DFS)
- 一起talk C栗子吧(第十三回:C语言实例--单链表二)
- NYOJ 58 最少步数(BFS)