2009年3月22日 星期日

C語言的範例 –反彈高度 - 數學計算

C語言的範例 反彈高度
題目:一球從100高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高? 
1.程式分析:見下面注釋 
2.程式源代碼: 
main() 
{ 
float sn=100.0,hn=sn/2; 
int n; 
for(n=2;n<=10;n++) 
 { 
  sn=sn+2*hn;/*n次落地時共經過的米數*/ 
  hn=hn/2; /*n次反跳高度*/ 
 } 
printf("the total of road is %f\n",sn); 
printf("the tenth is %f meter\n",hn); 
}

 C語言的範例 數學計算
題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 
1.程式分析:採取逆向思維的方法,從後往前推斷。 
2.程式源代碼: 
main() 
{ 
int day,x1,x2; 
day=9; 
x2=1; 
while(day>0) 
 {x1=(x2+1)*2;/*第一天的桃子數是第2天桃子數加1後的2*/ 
 x2=x1; 
 day--; 
 } 
printf("the total is %d\n",x1); 
}