語言的學習基礎,100個經典的演算法
c語言的學習要從基礎開始,這裡是100個經典的演算法-1c語言的學習要從基礎開始,這裡是100個經典的演算法
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔
子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數
為多少?
程式分析:兔子的規律為數列1,1,2,3,5,8,13,21....
程式源**:
main()
} 上題還可用一維陣列處理,you try!
題目:判斷101-200之間有多少個素數,並輸出所有素數。
程式分析:判斷素數的方法:用乙個數分別去除2到sqrt(這個數),如果能被整
除,則表明此數不是素數,反之是素數。
程式源**:
#include "math.h"
main()
if(leap)
leap=1;
} printf("\nthe total is %d",h);
} 題目:列印出所有的「水仙花數」,所謂「水仙花數」是指乙個三位數,其各位
數字立方和等於該數本身。例如:153是乙個「水仙花數」,因為153=1的三次方
+5的三次方+3的三次方。
程式分析:利用for迴圈控制100-999個數,每個數分解出個位,十位,百位。
程式源**:
main()
}printf("\n");
} 題目:將乙個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。
程式分析:對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完
成:(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。
(2)如果n<>k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正
整數你n,重複執行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。
程式源**:
/* zheng int is divided yinshu*/
main()
else
break;
}}printf("%d",n);
} 題目:利用條件運算子的巢狀來完成此題:學習成績》=90分的同學用a表示,60
-89分之間的用b表示,60分以下的用c表示。
程式分析:(a>b)?a:b這是條件運算子的基本例子。
程式源**:
main()
題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。
程式分析:利用輾除法。
程式源**:
main()
a=num1;b=num2;
while(b!=0)/*利用輾除法,直到b為0為止*/
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
} 題目:輸入一行字元,分別統計出其中英文本母、空格、數字和其它字元的個數
。程式分析:利用while語句,條件為輸入的字元不為'\n'.
程式源**:
#include "stdio.h"
main()
printf("all in all:char=%d space=%d digit=%d others=%
d\n",letters,space,digit,others);
} 題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是乙個數字。例如
2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。
程式分析:關鍵是計算出每一項的值。
程式源**:
main()
printf("a+aa+...=%ld\n",sn);
} 題目:乙個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2
+3.程式設計找出1000以內的所有完數。
C語言經典例題
經典c語言程式設計100例1 10 程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 ...
C語言經典例題
1.輸入兩個正整數,m和n,求其最大公約數和最小公倍數。include void main int hcf int u,int v while r u v 0 return v int lcd int u,int v,int h 2.輸入一行字元,分別統計出其中字母 空格 數字和其他字元的個數。in...
C語言經典例題複習
編寫乙個程式,輸入a b c三個值,輸出其中最大值。include int main void else printf d x return 0 要將 china 譯成密碼,解碼規律是 用原來字母後面的第4個字母代替原來的字母 例如,字母 a 後面第4個字母是 e e 代替 a 請編一程式,用賦初值...