請問qsort可以排浮點數嗎?? |
答題得分者是:brook
|
g71815
一般會員 發表:1 回覆:2 積分:0 註冊:2004-11-10 發送簡訊給我 |
各位高手好
請教一下我在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 發送簡訊給我 |
|
g71815
一般會員 發表:1 回覆:2 積分:0 註冊:2004-11-10 發送簡訊給我 |
謝謝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;
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |