解题思路:
利用循环 来计算每次 下落后弹起的高度, 经历的路程 需要注意 ,我在这里分别用 两个distance = (float)(high/2) 来计算。

特别注意:
还有一个 我这个工作了 7 8 年的老鸟没有注意到的地方, 对于浮点型输出有如下总结:
浮点型默认 表示是 小数点后6位,所以题目中的 小数点后精度6位是能保证的,但是最后打印时末尾会有多余的0, 所以需要用"%g 来打印
%f :  默认小数点后6位 打印
%0.2f : 打印小数点后面2位
%g:  默认不补全 多余0 输出

#include <stdio.h>

int main(void) {
    int nums = 5;
    float high = 0.0;
    scanf("%f", &high);
    float distance = 0.0;
    for(int i =1; i<= nums; i++) {
        distance +=high;
        high = (float)(high/2);
        if(i != nums) distance +=high; // nums =5 时,不用加上反弹的高度
    }
    printf("%g\n", distance);
    printf("%g\n", high);
    
    return 0;
}