请教一道编程题!
一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米,第n次反弹多高。关于输入
高度h(双精度浮点数),落地次数n(大于0整数)。
关于输出
输出它在第n次落地时,共经过的米数s 和第n次反弹的高度h。(精确到小数点后四位)
2016-11-24 16:33

2016-11-25 04:10
程序代码:#include <stdio.h>
void foo( double h, unsigned n )
{
printf( "起始%g米,第%u此落地,经过米数:%.4f,反弹高度%.4f\n", h, n, (3-4.0/(1u<<n))*h, h/(1u<<n) );
}
int main( void )
{
foo( 64, 1 );
foo( 64, 2 );
foo( 64, 3 );
foo( 64, 4 );
foo( 64, 5 );
}
2016-11-25 08:32
程序代码:#include <stdio.h>
int main(void)
{
double h;
int n;
double s = 0;
int i = 0;
printf("h = ");
scanf("%lf",&h);
printf("n = ");
scanf("%d",&n);
i = h;
while(n--)
{
s += i;
h = h / 2;
i = 2 * h;
printf("s = %lf, h = %lf\n", s, h);
}
return 0;
}
2016-11-25 15:23