题目:一个球从100米高度自由落下,每次落地后反跳回原高度的一半;在落下,求它在第十次落地是,共经过多少米?第十次反弹多高?
分析:
1.已知初始高度h =100; 经过的路程s=100;
2.第二次 高度为50米;经过的路程为 100+50+50
3.第三次 高度为25米;经过的路程为 100+50+50+25+25
4.。。。。。。以此往下推
5.所以在一个循环中把 这个过程放进去就可以了
6.需要注意的是:高度在第二次就开始减半了,在循环之外减半在进入循环
7.所以在循环内:先得出路程之后在进行高度减半,接着下一次循环
#include<stdio.h>
int main(){
float h=100;
float s=100;
h=h/2;
int i;
for( i=2;i<=10;i++){
s=s+h*2; h=h/2;
}
printf("s=%f h=%f\n",s,h);
return 0;
}