全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1048
推到 Plurk!
推到 Facebook!

請問qsort可以排浮點數嗎??

答題得分者是:brook
g71815
一般會員


發表:1
回覆:2
積分:0
註冊:2004-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-10 15:07:30 IP:140.124.xxx.xxx 未訂閱
各位高手好 請教一下我在BCB中使用qsort排一double的陣列 不過連編譯都過不了    我看過排int的程式碼  但改成float後就錯亂了    int compare(const void * a, const void * b); void __fastcall TForm1::Button1Click(TObject *Sender) {    int iA[10]={4.4, 1.5, 0.1, 9.5, 2, 3, 8, 5, 7.4444, 6};    Memo1->Lines->Clear();    qsort(iA, 10, sizeof(int), compare);    for(int i=0; i<10; i ) { Memo1->Lines->Add(iA[i]); } } int compare(const void * a, const void * b) { return (*(int*)a - *(int*)b); } 請問qsort可以排浮點數嗎?? 謝謝!!
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-10 15:15:11 IP:218.160.xxx.xxx 未訂閱
可以 int compare(const void * a, const void * b) { float v = (*(float*)a - *(float*)b); if (v > 0) return 1; else if (v < 0) return -1; else return 0; } 發表人 - BROOK 於 2004/11/10 15:16:03
g71815
一般會員


發表:1
回覆:2
積分:0
註冊:2004-11-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-10 19:50:39 IP:140.124.xxx.xxx 未訂閱
謝謝brook 以下是完整程式 //------------------------------------------------------------ int compare(const void * a, const void * b); void __fastcall TForm1::Button1Click(TObject *Sender) {         double iA[10]={4.4, 1.5, 0.1, 9.5, 2, 3, 8, 5, 7.44, 6};         Memo1->Lines->Clear();         qsort(iA, 10, sizeof(double), compare);         for(int i=0; i<10; i ) { Memo1->Lines->Add(iA[i]); } } //--------------------------------------------------------------------------- int compare(const void * a, const void * b) { double v = (*(double*)a - *(double*)b); if (v > 0) return 1; else if (v < 0) return -1; else return 0; }
系統時間:2024-06-02 0:43:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!