如何用C语言完成这个问题 一个球从100米的高处自由落下,触地后反弹到原高度的一半,问在第n次落地时?

一个球从100米的高处自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?注意:n从... 一个球从100米的高处自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?注意:n从键盘输入 展开
 我来答
xgn911
2022-10-05 · TA获得超过1363个赞
知道小有建树答主
回答量:1493
采纳率:96%
帮助的人:649万
展开全部

C语言代码如下:

#include<stdio.h>

int main() {

    double d = 100; // 皮球在空中经过的距离,第一次落地时为100m

    double h = 50; // 皮球反弹的高度,第一次反弹后为50m

    int i, n;

    scanf("%d", &n);

    for (i = 2; i <= n; i++) { // 从第二次落地开始

        d += h * 2; // 两次落地之间经过的距离为上次反弹高度的2倍

        h = h / 2; // 下次反弹高度变为原来的一半

    }

    printf("第%d次落地时一共经过%fm, 第%d次反弹高度为%fm\n", n, d, n, h);

    return 0;

}

运行结果如下:

追问
这个i表示的是什么呢
追答
i表示落地或反弹次数,i从2开始,一直遍历到n
就得到第n次落地时经过的距离和第n次反弹的高度
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式