一球从1000米高度自由落下,每次落地后反跳回原高度的一半

再落下,求它在第15次落地时,共经过多少米?第15次反弹多高?结果保留3位小数。


#include <stdio.h>
void main(){
    int i;
    float sum=1500; //第一次起一次和掉下一次的米数  
    float height=1000; //第一次的高度 
    
    for(i=2;i<=15;i++){
        height = height/2; //每次弹起的高度 
        sum += height*3/2; //每弹起一次和掉下一次的米数 
    }
    printf("第15次弹起高度是%0.2f,总共经过%0.2f米",height,sum);
    
}

你题目的解答代码如下:

#include <stdio.h>

int main()
{
    int i;
    float sum, hight;
    sum = 1000.0;
    hight = 1000.0;
    for (i = 2; i <= 15; i++)
    {
        hight /= 2;
        sum += hight * 2;
        printf("第%d次:%.3f  %.3f\n", i, sum, hight);
    }
    printf("%.3f  %.3f\n", sum, hight);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

#include <stdio.h>

int main(int argc, char const *argv[])
{
    double height = 1000, distance = 0;
    distance += height;
    for (int i = 0; i < 15; i++)
    {
        if (i)
            distance += 2 * height;
        height /= 2;
    }
    printf("height = %.3lf,distance = %.3lf\n", height, distance);
};