天天看點

c語言經典算法大全pdf,c語言經典算法100例pdf版.pdf

c語言經典算法100例pdf版

C 語言經典算法 100 例

C 語言程式設計經典 100 例

A:【程式1】

題目:有1、2、3、4 個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

1.程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去

掉不滿足條件的排列。

2.程式源代碼:

main()

{

int i,j,k;

printf( “\n “);

for(i=1;i 〈5;i++) /*以下為三重循環*/

for(j=1;j 〈5;j++)

for (k=1;k 〈5;k++)

{

if (i!=k&&i!=j&&j!=k)

printf( “%d,%d,%d\n “,i,j,k);

}

}

==============================================================

【程式2】

題目:企業發放的獎金根據利潤提成。利潤(I)低于或等于10 萬元時,獎金可提10%;利潤

高于10 萬元,低于20 萬元時,低于10 萬元的部分按10%提成,高于10 萬元的部分,可可

提成7.5%;20 萬到40 萬之間時,高于20 萬元的部分,可提成5%;40 萬到60 萬之間時高

于40 萬元的部分,可提成3%;60 萬到100 萬之間時,高于60 萬元的部分,可提成1.5%,

高于100 萬元時,超過100 萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總

數?

1.程式分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。

2.程式源代碼:

main()

{

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf( “%ld “,&i);

bonus1=100000*0.1;bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i 〈=100000)

bonus=i*0.1;

else if(i 〈=200000)

bonus=bonus1+(i-100000)*0.075;

else if(i 〈=400000)

bonus=bonus2+(i-200000)*0.05;

else if(i 〈=600000)

bonus=bonus4+(i-400000)*0.03;

else if(i 〈=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

printf( “bonus=%d “,bonus);

}

==============================================================

【程式3】

題目:一個整數,它加上100 後是一個完全平方數,再加上168 又是一個完全平方數,請問

該數是多少?

1.程式分析:在10 萬以内判斷,先将該數加上100 後再開方,再将該數加上268 後再開方,

如果開方後的結果滿足如下條件,即是結果。請看具體分析:

2.程式源代碼:

#include “math.h “

main()

{

long int i,x,y,z;

for (i=1;i 〈100000;i++)

{ x=sqrt(i+100);

y=sqrt(i+268);

if(x*x==i+100&&y*y==i+268)

printf( “\n%ld\n “,i);

}

}

==========================