C语言--> 一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?

//题目:一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?

//首先考虑,第一次落地高度为a=100m,从第二次开始,要加一个弹起和一个落地为2b
#include
int main(){
    double a=100,b=a/2;//定义初始高度为a,返回高度为原高度的一半
    int n;//定义n为循环次数
    for(n=2;n<=10;n++){
        a=a+2*b;//再次落地时经过的高度
        b=b/2;//现在开始,再次弹起时,高度又变为前一次下降之后高度的一半
    }
    printf("第十次落地经过%f米\n",a);
    printf("第十次反弹%f米\n",b);
    return 0;
}

你可能感兴趣的:(c语言,c语言)