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

C++河內塔程式碼???

尚未結案
mai
一般會員


發表:1
回覆:1
積分:0
註冊:2005-12-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-12-12 19:47:43 IP:192.192.xxx.xxx 未訂閱
#include  using namespace std; int T(int, int, int, int); char hanoi[][4] = {"A","B","C"}; int total=0; int main(void) { int n; cout << "輸入套盤數:"; cin >> n; cout << "搬移順序:" << endl; T(n,0,1,2); cout << "搬移次數:" << total << endl; system("pause"); return 0; } int T(int n, int start, int amid, int end) { total=total 1; if(n==1){ cout << "" << n << " => " << hanoi[start] << " → " << hanoi[end] << endl;} else{ T(n-1,start,end,amid); cout << "" << n << " => " << hanoi[start] << " → " << hanoi[end] << endl; T(n-1,amid,start,end);} return total; } 一個新手想向各位問個問題 using namespace std; int T(int, int, int, int); char hanoi[][4] = {"A","B","C"}; system("pause"); 這四行是代表著什麼東西 還有 T(n-1,start,end,amid); cout << "" << n << " => " << hanoi[start] << " → " << hanoi[end] << endl; T(n-1,amid,start,end); 最後這三行,為啥T的部份要重複打兩遍ㄚ
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-12-13 00:23:34 IP:59.104.xxx.xxx 未訂閱
一個新手想向各位問個問題 using namespace std; ==>namespace是c 用來避免名稱衝突的一個機制 你可以把它看成是在你程式中的變數在同一個scope內,變數名稱不能有重複,否則會出現錯誤但只要在不同的scope內就算是合法,比如說在不同的{}內的一樣名稱的變數而namespace不只是用來避免變數名稱衝突,只是是和名稱有關聯的都會受到namespace的限制,比如說函式名稱,定義等等(這一行拿掉也可以,一般的書都會加上這一行)。 int T(int, int, int, int); ==>函數原型,因為T()在main()後面,所以要先宣告函數原型,假如不宣告的話,就必需把T(int,int,int,int)這個函數寫在main()前面,如果要放在main()後面,而又不宣告函數原型的話,那麼在main()裡面執行到T()這個函數時,便不知T()函數在那裡? char hanoi[][4] = {"A","B","C"};宣告hanoi是字元的二維陣列 system("pause");//這行我就不知道了! 這四行是代表著什麼東西 還有 >==>遞迴,也就是自己呼叫自己 > " << >==>妳有沒有發現傳入值的順序不一樣了,這是為了要讓> 發表人 -
mai
一般會員


發表:1
回覆:1
積分:0
註冊:2005-12-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-12-13 20:18:29 IP:192.192.xxx.xxx 未訂閱
sorry...重新看了一次程式發覺我還是有一些問題 T(n,0,1,2);這裡是會跑出啥ㄚ 看了跑過的程式..我發覺為啥程式可以跑出來套環1.2.3的數字ㄚ
系統時間:2024-04-28 16:47:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!