内容纲要
一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?
思考:
一、需要一个变量表示每次反弹多高 height = height / 2,height 初始化 = 100
二、共经过了多少米,设置变量length也就是下落+反弹, 除了第一次外,height *2。
三、在得到结果时,发现少考虑了小数的情况,这样的话得到第十次高度为0,但是实际是存在的,因此不应该是int类型的长度和高度,需要更改变量声明 double height length 见程序 ②
程序:
① #include
int main(void)
{
int height =100 ,length =0,i=0;
for(i = 0;i<10;i++)
{
length+=height;
height = height/2;
length+=height;
}
printf("%d %d",height,sum);
}
② #include
int main(void) {
double height = 100, sum = 0;
int i = 0;
for (i = 0; i < 10; i++) {
sum += height;
height = height / 2.0;
sum += height;
}
printf("%f %f", height, sum);
}