#include"stdio.h"
main()
{
int n,h=100,s=100;
for(n=2;n<11;n++)
{
h/=2;
s+=h*2;
}
printf("第十次落地时,共经过%d米\n,第10次反弹高度为%d米\n",s,h/2);
}
当n=2的时候,h/=2表示第一次反弹的高度,s+=h*2;表示第二次落地式经过的距离。所以当n=10最后一次循环时,循环里面的h还只是第九次反弹的高度,,所以后面的输出还要再除以2
测试一下是否正确。
#include
void main()
{
double sum = 100.0, last = 50.0;
int i;
for (i = 1; i < 10; ++i)
{
printf("%f\n", last);
sum += last * 2;
last /= 2;
}
printf("%f\t%f\n", sum, last * 2);
}
#include
main()
{float height=100.0,sum_height=100;
int i;
for(i=1;i<10;i++) {
height=height/2;
sum_height+=height*2;
}
printf("%fm\n",sum_height);
printf("%fm\n",height);
return 0;
}
#include
void main()
{
int i;
double n=100.0,a=100.0;
for(i=0;i<10;i++)
{
a/=2;
n+=a;
}
printf("小球共经过:%lf米\n,第10次的反弹高度是:%lf米\n",n,a);
}