求一个C语言题目的代码

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:16:25
题目是:一个球从100米高度下,每次落地后反跳回原地高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高?
我是新手,菜鸟啊。 希望各位大哥,多给点答案,答案最好加讲解一下。
谢谢了。

第一次落地:100M
float SUM=100;SUM是总路程,它是一个一个路程加起来的。

从第一次到第二次落地,上去下来是100的一半的二倍也是100M
SUM+=100;这个100M是每两次着地间的路程;

从第二次到第三次落地,上去下来是50的一半的二倍也是50M
(50哪里来的?就是上次弹起的高度)
所以我们要在定义一个变量来存储每次弹起的高度(开始是50,每次是原来的一半):
float high=50;
进入循环后每次变为原来的一半;

现在将high加入:
main(){
float SUM=100;
float high=(float)SUM/2;/*因为第一次弹起高度就是原来的一半*/
int i;
for(i=0;i<10;i++){/*i循环从0-9共10次*/
if(i!=0)
high=high/2;/*第一次不需要减半,以后都需要。*/
SUM+=2*high;/*每次新增路程是弹起高度的2倍*/
}

printf("SUM=%f,high=%f",SUM,high);
getch();
}

#include<stdio.h>
void main()
{
float sum=100,h=100/2;
int n(2);
while(n<=10)
{
h=h*0.5;
sum=sum+h*2;
n++;
}
printf("h=%f\n",h);
printf("sum=%f\n",sum);

}

这是我以前编过的一个程序!!!