|
Elite Member
您的住址: 無止盡的文件地獄~~
文章: 4,714
|
引用:
|
作者hyffdmy
謝謝了
已經用中斷點去跑程式 也看到結果 大概知道怎麼分析
但還有一個問題 因為沒人交過觀念
所以我再問一下好了
void wwww(a,b)
{
............
............
if (g1<g2) wwww(c,d);.........(1)
if (g1>g2) wwww(x,y);.........(2)
}...........................................(3)
當第一次執行到第(1)這一行時,又會在call一次wwww(a,b);
那麼當程式執行完畢(3)(兩個if判斷是都沒有成立時,),程式是不是又會回到(2)這一行再判斷一次呢???
然後又執行到(3)完畢。
|
這就是所謂的遞迴......
首先在void main()這邊,for(i=0;i<=5;i++) cin >> a[i]; wwww(a,0,5);
這個FOR迴圈會去把A陣列裡的每個元素依序取出,然後去呼叫wwww,wwww後面括弧的三個參數a、0、5就是傳進wwww的參數,
接下來再wwww副程式裡面.....
} while(i <= j);
if(f < j) wwww(a,f,j);
if(i < t) wwww(a,i,t);
}
當i小於等於j的時候,會去重新呼叫自己,然後傳不一樣的參數進去
把這兩行跟主程式那一行FOR迴圈呼叫的參數比對一下,就知道差在哪邊了.....
__________________
歡迎光臨瘋狂火星基地~~
自然進氣可變汽門單缸雙活塞人肉避震
|