一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高?
从第一次弹起到第二次落地前经过的路程为前一次弹起最高高度的一半乘以2,加上前面经过的路程,因为每次都有弹起和下落两个过程,其经过的路程相等,故乘以2。
void main()
{
float i,h=100,s=100; /定义变量i、h、s分别为单精度型并为h和s赋初值100/
for(i=1;i<=9;i++) /i的范围是1~9,表示小球从第二次落地到第十次落地 /
{
h=h/2; /每落地一次弹起高度变为原来的一半 /
s+=h*2; /累积的高度和加上下一次落地后弹起与下落的高度 /
}
printf("总长度是:%f\n",s);
printf("第十次落地后弹起的高度是:%f",h/2); /输出第十次落地后弹起的高度 /
printf("\n");
}