小球弹跳C++程序

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:25:02
题目:
一球从100米的高度落下,每次落地后反弹回原高度的一半,再落下。编程求它在第10次落地时,共经过多少米?第10反弹多高?
我写了个程序,但结果老是不对,请各位大虾指导一下啊,谢谢!
#include<iostream.h>
#include<math.h>
main()
{double s1=0;
double s,s2;
int i,h=100;
for(i=1;i<=10;i++)
s1=s1+2*h*pow(1/2,i);
s=s1+h; //经过的距离
s2=pow(1/2,10)*h; //第10反弹的高度
cout<<"the distance is:"<<s;
cout<<endl;
cout<<"ten distance is:"<<s2;
}

http://zhidao.baidu.com/question/13554303.html
这是我曾经做过的一道类似题,希望能给你点启发。

以下是你的代码:
#include<iostream.h>
#include<math.h>
main()
{double s1=0;
double s,s2;
int i,h=100;
for(i=1;i<=10;i++) //别的地方没发现什么问题,但是这里应该是i<=9。如果是10,则是第11次落地时走过的距离了。
s1=s1+2*h*pow(1/2,i); //如果你是学数学的这里这么写我没意见,如果学编程的,个人认为这么写代码不是很好。
s=s1+h; //经过的距离
s2=pow(1/2,10)*h; //第10反弹的高度
cout<<"the distance is:"<<s;
cout<<endl;
cout<<"ten distance is:"<<s2;
}