本文目录一览:
- 1、c语言一球从m米高度自由落下,每次落地后反跳回原高度的一半, 求它在第n次落地时,共经过多少米?
- 2、C语言:球从h米高自由落下,每落地后又跳回原高度一半,再落下.求:第n次落地时,共经过多少m,第n次反弹多高?
- 3、大一C语言作业,一球从 M 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 N 次落地时
- 4、c语言一球从h米高度自由落下,每次落地后反跳回原高度的一半, 求它在第n次落地时,共经过多少米?
- 5、如何用C语言完成这个问题 一个球从100米的高处自由落下,触地后反弹到原高度的一半,问在第n次落地时?
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;
}
运行结果如下: