Re: [問題] 程式的邏輯問題
看板C_and_CPP (C/C++)作者adrianshum (Alien)時間16年前 (2009/04/27 18:21)推噓9(9推 0噓 14→)留言23則, 5人參與討論串2/3 (看更多)
※ 引述《shadown ()》之銘言:
: 最近遇到一個面試官,有問到我一個問題,是關於串列
: 方面的。
: 題目是:連續輸入幾個數字,最後輸入零表示程式結束。
: 之後再輸入一個數字,將前面輸入的數字與此
: 數比較,印出比此數大的數字。
: 我的解答,是用while來判斷串列中的data值是否為零,
: 是的話表示資料已經到最後一筆,結束比較大小的判斷。
: 面試官的解答,是用while來判斷串列中的next值是否為
: NULL,是的話表資料已經到最後一筆,結束比較大小的判
: 斷。
: 面試官的回答雖然在邏輯上是比較合理,但我覺得我的方
: 法應該也不能算錯,畢竟題目是說用零來當結束。所以想
: 請教一下各位前輩,我這樣算是錯的嗎?
補充一點, 一般的寫法也不是像考官說的那種.
通常是檢查 pointer 本身是不是 null, 而不是
next 是不是 null. (當然, 考官說的要寫也寫得出來)
for(node* p = myList; p != NULL; p = p->next) {
// do something on p
}
如果檢查的是 p->next 是否 null 就比較麻煩了
(一時想不到比較好看的寫法)
if (myList != null) {
node * p = null;
do {
p = ((p == NULL)? myList : p->next);
// do something with p
} while (p->next != null)
超難看 XDD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
推
04/27 18:53, , 1F
04/27 18:53, 1F
→
04/27 18:54, , 2F
04/27 18:54, 2F
推
04/27 18:57, , 3F
04/27 18:57, 3F
→
04/27 19:00, , 4F
04/27 19:00, 4F
想了一想, 修改過, 有好看一點了 :P
不過我還是比較喜歡第一種
※ 編輯: adrianshum 來自: 202.155.236.82 (04/27 19:03)
推
04/27 19:06, , 5F
04/27 19:06, 5F
→
04/27 19:07, , 6F
04/27 19:07, 6F
→
04/27 19:08, , 7F
04/27 19:08, 7F
推
04/27 19:10, , 8F
04/27 19:10, 8F
推
04/27 19:10, , 9F
04/27 19:10, 9F
推
04/27 19:10, , 10F
04/27 19:10, 10F
→
04/27 19:11, , 11F
04/27 19:11, 11F
→
04/27 19:13, , 12F
04/27 19:13, 12F
→
04/27 19:13, , 13F
04/27 19:13, 13F
→
04/27 19:14, , 14F
04/27 19:14, 14F
→
04/27 19:15, , 15F
04/27 19:15, 15F
→
04/27 19:16, , 16F
04/27 19:16, 16F
→
04/27 19:16, , 17F
04/27 19:16, 17F
推
04/27 19:32, , 18F
04/27 19:32, 18F
推
04/27 22:07, , 19F
04/27 22:07, 19F
→
04/28 01:44, , 20F
04/28 01:44, 20F
推
04/28 01:46, , 21F
04/28 01:46, 21F
→
04/28 01:47, , 22F
04/28 01:47, 22F
→
04/28 01:48, , 23F
04/28 01:48, 23F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章