以下是实现该程序的代码:
```c
#include
int main()
{
double height = 100.0; // 初始高度为 100 米
double distance = 100.0; // 初始距离为 100 米
int i;
for (i = 1; i <= 10; i++) {
height /= 2.0; // 第 i 次反弹的高度
distance += height * 2.0; // 第 i 次落地时共经过的距离
}
printf("第 10 次落地时,共经过 %.2f 米\n", distance);
printf("第 10 次反弹 %.2f 米高\n", height);
return 0;
}
```
程序中使用了一个循环来模拟球的自由落体和反弹过程。在每次循环中,先将球的高度除以 2,计算出它反弹的高度,然后将这个高度乘以 2,加到总距离上,得到球在第 i 次落地时共经过的距离。最后输出第 10 次落地时共经过的距离和第 10 次反弹的高度即可。