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

翻譯一個VB的qsort為bcb,不知道對不對?

缺席
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-02 16:42:47 IP:140.124.xxx.xxx 未訂閱
VB的qsort:
Private Sub qsort(ByRef a() As Single, ByRef b() As Single, ByVal m As Integer, ByVal n As Integer)
Dim i, j As Integer
Dim temp, k As Single
   
  If (m < n) Then
    i = m
    j = n   1
    k = a(m)
    Do
      
      Do
        'If i > 2048 Then Stop
        i = i   1
      Loop Until (a(i) >= k) Or (i >= n)
      Do
        j = j - 1
      Loop Until (a(j) <= k) Or (j <= 1)
      If (i < j) Then
        
        temp = a(i)
        a(i) = a(j)
        a(j) = temp
        
        temp = b(i)
        b(i) = b(j)
        b(j) = temp
        
      End If
    Loop Until (i >= j)
    
    temp = a(m)
    a(m) = a(j)
    a(j) = temp
    
    temp = b(m)
    b(m) = b(j)
    b(j) = temp
    
    
    If (m < j - 1) Then
      Call qsort(a(), b(), m, j - 1)
    End If
    If (j   1 < n) Then
      Call qsort(a(), b(), j   1, n)
    End If
  End If
  
End Sub 
我翻的:
 
void qsort(int a[],int b[], int m,int n)
{
  int i,j,k,temp;
  if (m < n)
  {
    i = m;
    j = n   1;
    k = a[m];
    do
    {
      do
      {
        if (i > 2048)
          i  ;
      }while( (a[i] >= k) || (i >= n) );
      do
      {
        j--  ;
      }while( (a[j] <= k) || (j <= 1) );          if (i < j)
      {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;            temp = b[i];
        b[i] = b[j];
        b[j] = temp;
      }        }while(i >= j);        temp = a[m];
    a[m] = a[j];
    a[j] = temp;        temp = b[m];
    b[m] = b[j];
    b[j] = temp;        if (m < j - 1)
    {
      qsort(a, b, m, j - 1);
    }
    if (j   1 < n)
    {
      qsort(a, b, j   1, n) ;
    }
  }
}    
我不知道對不對~其實我也不太了解~ 各位會的話~幫我一下~感謝大家哦~
系統時間:2024-05-18 16:14:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!