以下是使用 C 语言解决此问题的代码: ```c #include <stdio.h> int main() { int h; // 球的初始高度 scanf("%d", &h); // 输入初始高度 double totalDistance = h; // 初始经过的距离为初始高度 double currentHeight = h; // 初始反弹高度为初始高度 for (int i = 1; i <= 10; i++) { // 进行 10 次循环 totalDistance += 2 * currentHeight; // 每次下落和反弹经过的距离相加 currentHeight /= 2; // 每次反弹高度减半 } printf("%.4lf\n", totalDistance); // 输出经过的总距离,保留 4 位小数 printf("%.4lf\n", currentHeight); // 输出第 10 次反弹的高度,保留 4 位小数 return 0; } ``` 额外注意的逻辑点: 1. 注意输入的初始高度要在 1 到 100 之间。 2. 循环的次数要与题目要求的 10 次匹配。 3. 计算距离和高度时,要注意数据类型的精度和运算的准确性。 [2025-05-16 19:04:23 | AI写代码神器 | 295点数解答]