题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
代码实现:
#include <stdio.h>
int main()
{
double sum=0,h1=100,h2=0,i;
for(i=1;i<=10;i++)
{
sum+=(h1+h2);
h1/=2;
h2=h1;
}
printf("第十次落地反弹了%f米\n",h2);
printf("十次反弹共经过的距离是%f米\n",sum);
return 0;
}
sum用来表示小球共经过多少米,h1用来记录小球当下距离地面的高度,h2用来记录小球每次落地后反弹的高度。
代码效果:
当然也可以不仅仅局限于第十次,次数由用户自己输入。逻辑同上。
代码实现:
#include <stdio.h>
int main()
{
int n=0;
double sum=0,h1=100,h2=0,i;
printf("请输入小球下落的次数:>");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum+=(h1+h2);
h1/=2;
h2=h1;
}
printf("第%d次落地反弹了%f米\n",n,h2);
printf("%d次反弹共经过的距离是%f米\n",n,sum);
return 0;
}