雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C語(yǔ)言中qsort函數(shù)用法實(shí)例小結(jié)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

本文實(shí)例匯總了C語(yǔ)言中qsort函數(shù)的常見(jiàn)用法,非常具有實(shí)用價(jià)值。分享給大家供大家參考。具體分析如下:

C語(yǔ)言中的qsort函數(shù)包含在<stdlib.h>的頭文件里,本文中排序都是采用的從小到大排序。

一、對(duì)int類型數(shù)組排序

int num[100]; 

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

二、對(duì)char類型數(shù)組排序(同int類型)

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

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

三、對(duì)double類型數(shù)組排序(特別要注意)

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);

四、對(duì)結(jié)構(gòu)體一級(jí)排序 

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); 

 五、對(duì)結(jié)構(gòu)體二級(jí)排序 

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

//按照x從小到大排序,當(dāng)x相等時(shí)按照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); 

 六、對(duì)字符串進(jìn)行排序

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

//按照結(jié)構(gòu)體中字符串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); 

相信本文所述實(shí)例對(duì)大家C程序設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值。

上一篇:Cocos2d-x UI開(kāi)發(fā)之CCControlSlider控件類使用實(shí)例

欄    目:C語(yǔ)言

下一篇:Cocos2d-x學(xué)習(xí)筆記之Hello World源碼分析

本文標(biāo)題:C語(yǔ)言中qsort函數(shù)用法實(shí)例小結(jié)

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/3400.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有