【求助】程式問題(含程式碼以及圖片)

顯示結果從第 1 筆 到 2 筆,共計 2 筆
  1. #1
    會員
    註冊日期
    2004-12-24
    討論區文章
    25

    【求助】程式問題(含程式碼以及圖片)

    程式碼如下
    =========================================================
    #include <iostream.h>

    void wwww(int *a,int f,int t) {
    int i=f; int j=t; int mid=(f+t)/2; int key=a[mid]; int c=0;
    cout << "f=" << f << " " << "t=" << t << " ";
    cout << "\n";
    do{
    while(a[i] < key) i++; while(a[j] > key) j--;
    if(i <= j) {
    int temp=a[i]; a[i]=a[j]; a[j]=temp;
    i++; j--;
    }
    for(c=0;c<=5;c++) cout << a[c] << " ";
    cout << "i=" << i << " " << "j=" << j << " ";
    cout << "\n";
    } while(i <= j);
    if(f < j) wwww(a,f,j);
    if(i < t) wwww(a,i,t);
    }

    void main()
    {
    int a[6],i;

    for(i=0;i<=5;i++) cin >> a[i]; wwww(a,0,5);
    for(i=0;i<=5;i++) cout << a[i] << " ";
    cout << "\n";
    }
    ============================================================

    為什麼結果的第14行i=1 ; j=-1
    在if的判斷不是就false了
    為什麼還會有第15行的f=2 ; t=4
    為什麼呢??
    請會的人告訴我
    拜託 很急
    一直想不出來
    謝謝大家

    圖片網址如下
    http://www.pcdvd.com.tw/attachment.p...chmentid=42938



  2. #2
    會員 alec5106 的大頭照
    註冊日期
    2001-06-07
    討論區文章
    1,464
    你可以利用中斷點來debug
    當你 在結果第十四行 i=1 j=-1 是結束了 do.. while的迴圈
    但下一行你使用了遞迴的寫法,又呼叫了 wwww()這個函數,所以又執行了下面的結果

類似的主題

  1. 【求助】php & oracle 程式問題
    作者:sai 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 0
    最後發表: 2006-01-05, 11:56 AM
  2. 【求助】VB程式問題一問
    作者:todo0438 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 0
    最後發表: 2004-12-23, 08:11 PM
  3. JAVA的小程式問題~~急~~【求助】
    作者:cmyk 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 1
    最後發表: 2003-05-20, 12:27 PM
  4. 【求助】JAVA的小程式問題
    作者:cmyk 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 0
    最後發表: 2003-05-19, 04:56 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •