非遞迴官方函式版本
#define _crt_secure_no_warnings 1
#include
intmain()
;printf
("請輸入一串字串,本程式會將求出字串的長度:>");
gets
(str)
; strsize=
strlen
(str)
;printf
("%d"
,strsize)
;return0;
}
非遞迴自製函式版本
#define _crt_secure_no_warnings 1
#include
intselfstrlen
(char
* str)
return count;
}int
main()
;printf
("請輸入一串字串,本程式會將求出字串的長度:>");
gets
(str)
; strsize =
selfstrlen
(str)
;printf
("%d"
, strsize)
;return0;
}
遞迴自製函式版本
#define _crt_secure_no_warnings 1
#include
intselfstrlen
(char
* str)
//跳出遞迴,當陣列為字串結束標誌的時候跳出遞迴
sum +=1
; sum +
=selfstrlen
(str +1)
;return sum;
}//abcd
intmain()
;printf
("請輸入一串字串,本程式會將求出字串的長度:>");
gets
(str)
; strsize =
selfstrlen
(str)
;printf
("%d"
, strsize)
;return0;
}
遞迴和非遞迴分別實現strlen
遞迴和非遞迴分別實現strlen 來計算字串長度。方法一 遞迴 1 鍵入要求的字串 2 判斷字串是否為空,為空返回0 不為空返回strlen a 1 1 a 1表示字串後移一位 1表示字串長度 1 3 列印結果 方法二 1 鍵入要求的字串 2 判空,空則返回0 不為空則迴圈,count自增 3 列印...
遞迴和非遞迴
1 遞迴就是函式呼叫函式本身,執行起來就是函式巢狀函式,層層巢狀,所以函式呼叫 引數堆疊都是不小的開銷,但是程式簡單。2 非遞迴就是不斷地對引數入棧 出棧,省去了函式層層展開 層層呼叫的開銷。雖然引數出入棧次數多了,但是一般都開闢固定的足夠大的記憶體來一次性開闢 重複使用。3 非遞迴是從堆疊的角度來...
堆排序遞迴和非遞迴
完全二叉樹 葉子節點在最後一層或者次一層,且節點從左往右連續 大根堆 任何根節點都比他的左右子節點都要大 i為節點在陣列中的索引,求節點的父節點 i 1 2,求節點的左節點 i 2 1,求節點的右節點 i 2 2 測試方法 test public void test heapify2 array s...