简介:一个球从100m高度处落下,每次落地后反弹回原高度一半,再落下,再反弹。问:它在第十次落地,共运动了多少米,第十次反弹又多高呢?
看代码注释即可
代码如下:
#include <stdio.h>
//两个动作,先是从空中降落到地上,之后反弹到空中。以此类推而已。每次反弹和降落分别记录次数,即可。
int main()
{
float h=100.0;
float num1=0,num2=0,sum=0;
while(h!=0)
{
//开始降落
sum=sum+h;//落在地上时计算
num1++;
if(num1==10)
printf("第%.1f次降落时共经历了sum=%.2f米\n",num1,sum);
//开始反弹
h=h/2;
sum=sum+h;//反弹到空中时的路径长度也算上
num2++;
if(num2==10)
printf("第%.1f次反弹%f",num2,h);
}
}
运行结果