Re: [問題] 個性測驗程式

看板C_and_CPP作者 ()()時間9年前 (2014/12/12 14:53), 9年前編輯推噓4(400)
留言4則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《OhyaPTT (Ohya)》之銘言: : 已爬文 : 這次老師是出 : 個性測驗程式開發 : 就是 : 回答問題一後 : 是就跳問題幾 : 否就跳問題幾這樣 : 雖然有提示了 : 雖然有爬文了 : 但是還是不懂怎麼寫... : 然後只能用陣列和迴圈 : 跪求講解QQ : ----- : Sent from JPTT on my HTC Desire 600. machine learning 讀到腦袋燒掉,手很癢摸摸水晶球來回一下..... (題外話,為什麼 PTT 沒有 machine learning 或 AI 的討論板啊....... ?) 首先,你要先畫的出測驗流程才行,也就是什麼問題後面要接上什麼問題(或解答)。 如果答案只有 是/否 而已的話,那就是棵簡單的二元樹。 以下我就隨便畫一個 question result [0] N Y / \ [0] [1] Y N / \ [2] [1] Y N / \ [2] [3] Y N / \ [3] [4] 意思就是 question[0] 回答 N 就會到 result[0] 回答 Y 就會到 question[1] 如此一來,程式流程可以這麼寫: question[]: 一堆問題的集合,這裡用陣列來放。 result[]: 一堆測驗結果的集合,這裡用陣列來放,且每個都是葉節點。 question_index = root while 測驗中: 印出問題(根據 question_index) 讀取使用者的回應 更新 question_index if 到達葉節點(問題問完,結果出來了) 更新 result_index 印出 result_index 測驗中的判斷式就自己想吧,簡單一點就... bool isTesting = true; while (isTesting) .... if (到達葉節點) isTesting = false; 為了證明我不豪洨,我就隨手寫一個奇怪的範例吧:http://codepad.org/2vPpts8A 只不過結構可能稍微改變一下,直接把 result 填進 question 的後面來節省行數 lol [0] N Y / \ [4] [1] Y N / \ [2] [5] Y N / \ [6] [3] Y N / \ [7] [8] 不過這是因為只能用陣列和迴圈, 姑且當作你連 pointer、structure 都沒教過也不能用(其實我覺得這很奇怪。) 不然我可能傾向用 C++ 弄個 class Node {...} 然後在裡面判斷該節點是 question 或是 result, 最後跑 .next() 用指標 implement 等等。 以上 歡迎發問與指教。 -- 並且希望原 PO 看完了不管有沒有收穫都給個回應,別讓我覺得我回了一篇文給石頭看。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.60.254.39 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1418367183.A.E08.html ※ 編輯: ACMANIAC (61.60.254.39), 12/12/2014 14:53:17

12/12 16:32, , 1F
Nice tree
12/12 16:32, 1F
※ 編輯: ACMANIAC (61.60.254.39), 12/12/2014 17:11:34

12/12 17:14, , 2F
Ya~我是避孕高手!!
12/12 17:14, 2F

12/12 21:45, , 3F
"question[0] 回答 Y 就會到 result[0]..."這段寫反?
12/12 21:45, 3F
是的,有發現但還是有沒改到的地方,感謝指正! ※ 編輯: ACMANIAC (111.252.92.21), 12/13/2014 00:44:07

01/05 11:36, , 4F
感謝你,但是我沒有用你的用法,多一個用法能給我參考,謝謝
01/05 11:36, 4F
文章代碼(AID): #1KYf3Fu8 (C_and_CPP)
文章代碼(AID): #1KYf3Fu8 (C_and_CPP)