解题思路
这道题关键在于他说的反弹是需要触地的,大概轨迹图是这样的
由于我给的sumh米是100,也就是说当球第一次碰到地面时,经过100米,这个时候我已经触地了,所以我设置的循环时从2开始,当球开始反弹时只能反弹原来高度的一半,所以=h/2;
但是我第二次触地是需要经过2*h的
所以代码如下:
int main() {
double h = 100.0; //球所在高度
double sumh =100.0;//球经过的米
int i = 1;
for (i = 2; i <= 10; i++) {
h = h / 2;
sumh += 2 * h;
}
printf("第10次落地时共经过%lf米\n", sumh);
printf("第10次落地时反弹%lf米\n", h);