问:
一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
求它在第10次落地时共经过多少米,第10次反弹多高。
分析:
这道题的代码实现起来非常简单,我们只需要注意一点——把题目读清楚。
题目中求的是第10次落地时,经过多少m,而不包括第10次回弹的距离。
清楚了这一点后,我们就可以开始用代码实现了:
#include <stdio.h>
//
//球第一次弹跳为100m,然后每次减半
// 求第10次时,球运动了多少m,以及第10次回弹时它可以蹦多高
//
int main()
{
double distance = 0.0;//总距离
double ball = 0.0;//球每一次的距离
int i = 0;
ball = 100.0;//定义小球第一次下落时的高度
for (i = 0; i < 10; i++)
{
//下落距离
distance += ball;
ball /= 2;
//回弹距离
distance += ball;
}
//减去第10次回弹距离
distance -= ball;
printf("第10次弹跳时,球的最高处为%lfm,总共运动了%lfm\n", ball, distance);
return 0;
}
标签:11,10,ball,回弹,int,距离,谭浩强,distance
From: https://blog.51cto.com/u_16509575/9439294