程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話中qsort函數用法實例小結

C說話中qsort函數用法實例小結

編輯:關於C++

C說話中qsort函數用法實例小結。本站提示廣大學習愛好者:(C說話中qsort函數用法實例小結)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中qsort函數用法實例小結正文


本文實例匯總了C說話中qsort函數的罕見用法,異常具有適用價值。分享給年夜家供年夜家參考。詳細剖析以下:

C說話中的qsort函數包括在<stdlib.h>的頭文件裡,本文中排序都是采取的從小到年夜排序。

1、對int類型數組排序

int num[100]; 

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

2、對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); 

3、對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);

4、對構造體一級排序 

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

 5、對構造體二級排序 

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

 6、對字符串停止排序

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法式設計的進修有必定的自創價值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved