您的位置:

第n次落地c语言,小球落地c语言

本文目录一览:

c语言一球从m米高度自由落下,每次落地后反跳回原高度的一半, 求它在第n次落地时,共经过多少米?

#include stdio.h//望采纳!!

int main()

{

int i,N;

double M,s,h=0,k;//k用来保存输入的M值

scanf("%lf %d",M,N);

k=M;

if(N==1)

{

h=M;

s=M;

}

else

for(i=1,s=0;i=N;i++)

{

s=s+3*M/2;//这个s不知道你是用来干嘛的,所以没改

if(i==N)

{

h=h+M;

}

else

{

h=h+M+M/2;

}

M=M/2;

//h=M;

}

printf("小球从%.2f米的地方落下,经过三次落地经过的距离为%.2f米. %.2f\n",k,h,s);//这里会输出

return 0;

}

C语言:球从h米高自由落下,每落地后又跳回原高度一半,再落下.求:第n次落地时,共经过多少m,第n次反弹多高?

#include stdio.h

int main(void)

{

float h,s,fh;

int n,i;

printf("依次输入初始高度和n的值,中间用空格隔开:");

scanf("%f %d",h,n);

s=h;

fh=h;

for(i=1;in;i++)

{

s=s+h;

h=0.5*h;

}

for(i=1;i=n;i++)

{

fh=0.5*h;

}

printf("第n次落地时,共经过多%.2fm\n第n次反弹%.3fm",s,fh);

return 0;

}

大一C语言作业,一球从 M 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 N 次落地时

#includestdio.h

void main()

{

float M,m;

int n,i;

printf("请输入初始高度,和弹地次数:");

scanf("%f %d",M,n);

m = M;

for(i =0;in;i++)

m = m/2;

printf("从%f米高掉下来的球,弹地%d次后高度为%f",M,n,m);

}

c语言一球从h米高度自由落下,每次落地后反跳回原高度的一半, 求它在第n次落地时,共经过多少米?

学好C语音,数学功底一定要好,这个算法可以用递归完成,但是考虑到无限情况,最好是建立一个数学模型出来,这里可以计算一个模型公式:S=2x + x*(n-1)/n

这里n与你弹跳的次数相关,假设弹9下,n = 2^(9-1)可以无限加大,值就会更精确,

那么带入公式就很容易得到结果:

假设从10米掉下,弹9下:

S = 20 + 10*(255/256)

如何用C语言完成这个问题 一个球从100米的高处自由落下,触地后反弹到原高度的一半,问在第n次落地时?

C语言代码如下:

#includestdio.h

int main() {

  double d = 100; // 皮球在空中经过的距离,第一次落地时为100m

  double h = 50; // 皮球反弹的高度,第一次反弹后为50m

  int i, n;

  scanf("%d", n);

  for (i = 2; i = n; i++) { // 从第二次落地开始

      d += h * 2; // 两次落地之间经过的距离为上次反弹高度的2倍

      h = h / 2; // 下次反弹高度变为原来的一半

  }

  printf("第%d次落地时一共经过%fm, 第%d次反弹高度为%fm\n", n, d, n, h);

  return 0;

}

运行结果如下: