高空坠球
皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。
问皮球在第n次落地时,在空中一共经过多少距离?
第n次反弹的高度是多少?
#include <stdio.h>
int main() {
float height;
int count;
printf("请输入高度height:");
scanf("%f", &height);
printf("请输入次数count:");
scanf("%d", &count);
float sumHeight,currentHeight;
sumHeight = height;
currentHeight = height;
if(count <= 0){
printf("计算次数不能小于0,count=%d \r\n",count);
return 0;
}
if(count==1){
printf("第一次反弹的高度height=%f \r\n",height);
printf("第一次空中经过的总距离sumHeight=%f \r\n",sumHeight);
}
for(int i=2; i <= count; i++){
currentHeight = currentHeight/2;
sumHeight = sumHeight + currentHeight;
}
printf("第%d次反弹的高度currentHeight=%f \r\n", count, currentHeight);
printf("第%d次落地时空中经过的总距离sumHeight=%f \r\n",count, sumHeight);
return 0;
}
---------------------------------------------------
houxr@houxiurong:~/Downloads$ gcc height.c
houxr@houxiurong:~/Downloads$ a.out
请输入高度height:100
请输入次数count:3
第3次反弹的高度currentHeight=25.000000
第3次落地时空中经过的总距离sumHeight=175.000000
---------------------------------------------------
本文共计 1308 字,感谢您的耐心浏览与评论。
0条回应:“高空坠球”