C語言中有有許多經典的算法,這些算法都是許多人的智慧結晶,也是程式設計中常用的算法,這裡面包含了衆多算法思想,掌握這些算法,對于學習更進階的、更難的算法都會有很大的幫助,會為自己的算法學習打下堅實的基礎。
接下來我們先來看10道:
(1)輸出9*9乘法口訣。
運作結果:

(2)古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?(兔子的規律為數列1,1,2,3,5,8,13,21....)這也是著名的斐波那契數列。
(3)1-100之間有多少個素數,并輸出所有素數及素數的個數。
程式分析:判斷素數的方法:用一個數分别去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
關于一個數是否是素數,還有更高效的算法,大家可以先考慮一下,以後我會給出算法。
(4)一個數如果恰好等于它的因子之和,這個數就稱為“完數”。例如6 = 1+2+3
找出10000以内的所有完數。
(5)下面程式的功能是将一個4×4的數組進行逆時針旋轉90度後輸出,要求原始數組的資料随機輸入,新數組以4行4列的方式輸出。
(6)程式設計列印楊輝三角。
(7)實作将輸入的字元串反序輸出。
(8)實作字元串拷貝函數strcopy(char*src,char* dest)
(9)求近似Pi值。可以用公式(如:pi/2 = 1+1/3+1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9+.....)
這裡求得的隻是近似的值,精度不高,對于求任意位的pi值就無能無力了,大家可以考慮如何求任意位數的pi值,
關于任意位數的pi值求法,可以參見我的部落格:《計算任意位數的Pi》
(10)輸入一個字元串,判斷其是否為回文。回文字元串是指從左到右讀和從右到左讀完全相同的字元串。