c语言,一个球从某高度h落下,每次落地后反弹回原来高度的一半,再落下。编程计算球在10次落地?

各经过多少米?各反弹多高?例如这样的(要输出10次哦)... 各经过多少米?各反弹多高?例如这样的(要输出10次哦) 展开
 我来答
自我编程
2021-05-17 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

根据你的题目和输出样式截图分析:

1、每次输出当前坠落的高度,及本次坠落后经过的距离总和

2、输出包含小数,因此高度及距离变量采用浮点数

3、递归/循环只执行10次

3、看你图上,输出浮点数小数不显示多余的0,因此打印格式要用%g而不是%f(最多保留6位)。

#include <stdio.h>

void drop(float height);

int main()

{

    float height;

    printf("初始高度:");

    scanf("%f",&height);

    drop(height);

    return 0;

}

void drop(float height)

{

    static int cnt=1;

    static float distance=0;//每次坠落后球移动的距离总和

    if(height>0){

        distance+=height;

        printf("第%d次高度%g\n",cnt,height);

        printf("第%d次距离%g\n",cnt,distance);

        if(cnt<10)

            cnt++,distance+=height/2,drop(height/2);

        else

            cnt=1,distance=0;

    }

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式