C语言实现小球下落反弹问题
C语言实现小球下落反弹问题
题目描述: 一个球从100m的高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第n次落地时,共经过多少米,第n次反弹多高。
输入说明: 输入一个整数,表示第n次落地反弹。
输出说明: 输出两个浮点数,表示小球经过的距离,和第n次反弹的高度,小数点后保留3位小数。
输入样例: 10
输出样例: S=299.609 h=0.098
代码实现:
#include <stdio.h>
int main() {
    int n;
    scanf('%d', &n);
    double s = 100.0;  // 路程,初始为100
    double h = 50.0;  // 反弹高度,初始为50
    for (int i = 2; i <= n; i++) {
        s += h * 2;  // 每次落地后,距离增加两倍反弹高度
        h /= 2;  // 反弹高度减半
    }
    printf('S=%.3lf h=%.3lf\n', s, h);
    return 0;
}
输入示例解释:
- n = 10,表示求第10次落地反弹时的距离和反弹高度。
 
输出示例解释:
- 第10次落地时,小球经过的距离为299.609,反弹高度为0.098。
 
代码分析:
- 程序首先定义两个变量 
s和h分别用来存储小球经过的距离和反弹高度。 - 初始时,
s为 100,h为 50。 - 循环从第2次落地开始,每次迭代中,距离增加两倍的反弹高度,反弹高度减半。
 - 最后,程序输出计算得到的距离和反弹高度。
 
总结: 本程序展示了使用 C 语言解决小球下落反弹问题的方法,并提供了代码示例和详细的解释。您可以根据需要修改代码并尝试不同的输入值。
原文地址: https://www.cveoy.top/t/topic/bHe1 著作权归作者所有。请勿转载和采集!