c 邏輯問題,c 乙個邏輯問題

時間 2022-12-02 08:50:57

1樓:

「dulinklist p=l->next; /* p指向第乙個結點 */」

如果你上面的句子正確的話,l就是指向第乙個節點的first指標(first指標就是最開始的那個指標,它不是結構,只是乙個指標,作用是然鍊錶有個頭,可以給其它函式找到並且使用)

所以如果p==l,就是說明鍊錶中連乙個結構都沒有,那麼當然沒有要尋找的「i」結構了,所以第i個元素不存在

2樓:篤俠

語句if(p==l||j>i)

有誤,應該是

if(p==l)才對

3樓:

首先dulinklist p=l->next; /* p指向第乙個結點 */

而且當while迴圈中在還沒找到第j個元素時,p所指向鍊錶元素的指標不斷往前移,即

p=p->next;

while不斷迴圈下去直到p=l且 j>i 時退出迴圈,那麼此時已經把整個鍊錶的元素都遍歷完了(即p=l),並且 j 不等於 i (即 j>i),則說明該雙向鍊錶中不存在該元素,所以return error;

4樓:

p的初值取l->next,利用p!=l來判斷鍊錶結束,說明這是個雙向環形鍊錶。

由此,while的判斷條件是鍊錶未結束,或未到第i個節點。

不過退出迴圈後,的確只要判斷p==l就行了,不會存在j>i的情況

C語言問題,乙個C語言問題!

上面的寫的遞迴函式很不錯,這種方法即容易理解,又不需要用陣列,很好!只是有點小問題,比如輸入 8 123,輸出 0173 前面多個0 另外,也不夠簡潔,易讀。我修改如下 include include void trans int n,int m void main include stdio.h ...

簡單C問題,乙個簡單C問題

for a b c 的執行順序是 a初始化 b判斷d執行 c遞增 減改變條件 b判斷d執行 c遞增 減改變條件 b判斷 d執行c遞增 減改變條件 b判斷所以你每次輸入後,y 再判斷txt x y n 此時判斷的不是你輸入的值,而是txt中原始的輸入位置的下乙個位置的值。如果只錯第一句的話 for x...

數學邏輯問題每人差,數學對乙個人的邏輯思維培養到底有多重要

那一元根本不存在,這道題是把兩個角度計算錢數混淆到一起了最 初 abc每人支出10元,共30元,均在菜販子手中d講價 菜販子退回5元,剩下25元 d得到2元 共27元abc每人拿回1元,相當於每人支出9元,共27元ps 30 3 9 3,d又只拿走了2元,還剩下一元30 3 9 3 這個3裡面根本就...

c語言的問題,C語言的乙個問題

這應該是一元二次方程的求根公式。型如 a x方 b x c 0 a是二次項係數 b是一次項係數 c是常數項,x1 x2是方程的兩個根,p q不代表什麼意思 是求根公式的中間步驟而已。 這是一元二次方程ax bx c 0的兩個根ax bx c 0 兩邊同時除以a x bx a c a 0 兩邊加上配方...

C的小問題,C的乙個小問題

include define i 3 int main void for a 0 a 10 i i 1 a n a return 0 按照你的要求在你的程式基礎上改的,除錯後沒問題。補充回答 當你輸入少於10個字元的時候,在最後乙個有效字元後你敲的是 回車 也就是說,在最後乙個有效字元的後面的乙個元...