C语言中qsort函数用法实例小结

 更新时间:2014年09月10日 15:01:25   投稿:shichen2014  
这篇文章主要介绍了C语言中qsort函数用法,包括了针对各种数据类型参数的排序,非常具有实用价值,需要的朋友可以参考下

本文实例汇总了C语言中qsort函数的常见用法,非常具有实用价值。分享给大家供大家参考。具体分析如下:

C语言中的qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序。

一、对int类型数组排序

int num[100]; 

int cmp ( const void *a , const void *b ) 
{ 
  return *(int *)a - *(int *)b; 
} 
qsort(num,100,sizeof(num[0]),cmp); 

二、对char类型数组排序(同int类型)

char word[100]; 
int cmp( const void *a , const void *b ) 
{ 
  return *(char *)a - *(char *)b; 
} 

qsort(word,100,sizeof(word[0]),cmp); 

三、对double类型数组排序(特别要注意)

double in[100]; 

int cmp( const void *a , const void *b ) 
{ 
  return *(double *)a > *(double *)b ? 1 : -1; 
} 
qsort(in,100,sizeof(in[0]),cmp);

四、对结构体一级排序 

struct In 
{ 
  double data; 
   int other; 
}s[100];

int cmp( const void *a ,const void *b) 
{ 
  return (*(struct In *)a)->data > (*(struct In *)b)->data ? 1 : -1; 
} 
qsort(s,100,sizeof(s[0]),cmp); 

 五、对结构体二级排序 

struct In 
{ 
  int x; 
  int y; 
}s[100]; 

//按照x从小到大排序,当x相等时按照y从大到小排序 
int cmp( const void *a , const void *b ) 
{ 
  struct In *c = (struct In *)a; 
  struct In *d = (struct In *)b; 
  if(c->x != d->x) return c->x - d->x; 
  else return d->y - c->y; 
} 
qsort(s,100,sizeof(s[0]),cmp); 

 六、对字符串进行排序

struct In 
{ 
  int data; 
  char str[100]; 
}s[100]; 

//按照结构体中字符串str的字典顺序排序 
int cmp ( const void *a , const void *b ) 
{ 
  return strcmp( (*(struct In *)a)->str , (*(struct In *)b)->str ); 
} 
qsort(s,100,sizeof(s[0]),cmp); 

相信本文所述实例对大家C程序设计的学习有一定的借鉴价值。

相关文章

  • C++实现LeetCode(56.合并区间)

    C++实现LeetCode(56.合并区间)

    这篇文章主要介绍了C++实现LeetCode(56.合并区间),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Qt实现编辑框失去焦点隐藏功能

    Qt实现编辑框失去焦点隐藏功能

    这篇文章主要为大家详细介绍了Qt实现的一个简单的编辑框操作——主窗口失去焦点隐藏功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-10-10
  • C++中多态的定义及实现详解

    C++中多态的定义及实现详解

    这篇文章主要给大家介绍了关于C++中多态的定义及实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • C++中std::count函数介绍和使用场景

    C++中std::count函数介绍和使用场景

    std::count函数是一个非常实用的算法,它可以帮助我们快速统计给定值在指定范围内的出现次数,本文主要介绍了C++中std::count函数介绍和使用场景,感兴趣的可以了解一下
    2024-02-02
  • C语言 Freertos的递归锁详解

    C语言 Freertos的递归锁详解

    这篇文章主要为大家详细介绍了C语言的递归锁,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 基于C语言编写一个简单的Web服务器

    基于C语言编写一个简单的Web服务器

    C语言可以干大事,这篇文章主要为大家详细介绍了如何基于C语言可以完成一个简易的Web服务器,希望这篇文章会帮你你对C语言有更深入的理解
    2024-03-03
  • 简单掌握C++编程中的while与do-while循环语句使用

    简单掌握C++编程中的while与do-while循环语句使用

    这篇文章主要介绍了C++编程中的while与do-while循环语句使用,区别就是while是先判断再执行,而do-while是先执行再判断,需要的朋友可以参考下
    2016-01-01
  • C++ Strassen算法代码的实现

    C++ Strassen算法代码的实现

    这篇文章主要介绍了C++ Strassen算法代码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C语言编程C++柔性数组结构示例讲解

    C语言编程C++柔性数组结构示例讲解

    这篇文章主要介绍了C语言编程系列中的柔性数组,文中含有详细的示例代码讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • C语言数据结构图的创建与遍历实验示例

    C语言数据结构图的创建与遍历实验示例

    这篇文章主要为大家介绍了C语言数据结构图的创建与遍历实验示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论