/*
问题:球从100米高度自由落下,每次落地后反弹到原高度的一半,
第十次落地时,共经过多少米,第十次反弹多高?
作者:龍之吻(lonkiss)
时间:2009.10.31
*/
#include <io.hstream.h>
void main()
{
float h=100,s=100; //高度初始化为100米;反弹次数反弹经过的总高度,初始化为100
int n; //反弹次数
for (n=1;n<=10;n++)
{
h=h/2; //每次反弹高度为原来的一半
s=s+h*2; //弹起的高度和落下的相同,乘以2
}
s=s-h*2; //多算一次要减掉,注意要在循环体外
cout<<"第10次反弹时的高度:"<<h<<"米"<<endl; //第10次反弹时的高度
cout<<"第10次落地时共经过:"<<s<<"米"<<endl; //第10次落地时共经过
}
不足之处很多啊 -_-|||
============《C程序设计教程学习辅导》上给的答案==========
#include <stdio.h>
void main()
{
double sn=100,hn=sn/2;
int n;
for (n=2;n<=10;n++)
{
sn=sn+2*hn;
hn=hn/2;
}
printf("第10次落地时共经过%f米/n",sn);
printf("第10次反弹%f米/n",hn);
}
----------程序运行结果--------
第10次落地时共经过299.609375米
第10次反弹0.097656米
-----------------------------