●●●●C语言~一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,

2024-12-02 08:01:56
推荐回答(5个)
回答1:

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
1.程序分析:见下面注释
2.程序源代码:
main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
printf("the total of road is %f\n",sn);
printf("the tenth is %f meter\n",hn);
}

回答2:

#include
#include
#include
void main()
{
float s=100.0,h,l,k;//s为初始高度,设h为每一次弹跳的高度,l为路程,k为每一阶段的路程//
int n;
clrscr();//清屏函数//
for(n=2;n<=10;n++)
{
h=s/pow(2,n-1);//第n次弹跳的高度(看不懂这个可以画图)//
k=h*2;//每一阶段路程,就是指每一次走多少路//
l+=k;
}
l=l+100;//最后要加100,因为前面是从第二次开始算的//
printf("the total of road is %f\n",l);
printf("the tenth is %f meter\n",h);
}
答案是299多和0.19多具体忘了,和前面那个差不多,应该是对的,第一个好像有错。其实我是要交作业来搜答案,发现没有自己满意的还有些答案是错的,所以自己写了,这里有注释希望可以帮助到一些人,还有如果有错误的地方请指正,我是小萌新,嘻嘻。不要和我一样copy作业哦。

回答3:

#include
main()
{float h=100,sum=0,i;//i 也可以定义成int型
for (i=0;i<10;i++)
{sum=sum+h;
h=h/2;
}
printf("%2.0f %f %f\n",i,h*2,sum);
}
sum为总路程,h*2为第十次弹跳的高度

回答4:

#include
void main()
{int i;
float sum=0;

float h=100;
sum=sum+h;
for(i=1;i<10;i++)
{h=(float)h/2;
sum=sum+2*h;}
h=(float)h/2;
printf("第十次反弹时总共经过:\n");
printf("%f\n",sum);
printf("第十次反弹时的高度为:\n");
printf("%f\n",h);}

回答5:

/* Note:Your choice is C IDE */
#include "stdio.h"
int main(void)
{
float a,s=100,i;
for(a=100,i=1;i<=9;i++)
{
s=s+(a/2)*2;
a=a/2;
}
a=a/2;
printf("共经过%f,第十次反弹%f",s,a);
return 0;
}