C语言自由落体方面
3个回答
展开全部
#include <stdio.h>
int main()
{
double t = 0;
double h = 100;
int i;
t = h;
for(i = 2; i <= 10; i ++)
{
t+=h;//第i次落地时的总路程
h/=2;//第i-1次落地后,弹起的高度。
}
h/=2; //最后一次计算的是第9次反弹高度,再除2就是第10次的。
printf("%lf, %lf\n", t, h);
return 0;
}
展开全部
#include <stdio.h>
int main(void) {
double h = 100.0, sum = 0.0;
int i = 0;
while (i++ < 10) {
sum += h;
h /= 2;
sum += h;
}
sum -= h; /*第10次落地后总路程就不再算了,所以把第10次反弹高度减去*/
printf("总共经过%g米,第10次反弹%g米。\n", sum, h);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m = m/2; y = y+m*3;
表明的是 一次弹起到最高点的时候经过的路程,问题是什么? 楼主可以看看 是第N次落地时候反弹多高,共经过多少米,楼主的计算公式比它多了个最后弹起的高度 ,应该减去最后一次弹起的高度!
举个例子 1000米的时候 弹起一次反弹多高呢 ? 显然是500 经过的路程呢 1000 按照楼主的计算公式就是1500米,多在了最高多计算了一次 减去就行了!改程序的循环部分 我还没没有想好 ,不过按下面这样改
#include<stdio.h>
#include<string.h>
int main()
{
float m,n,i,y=0;
scanf("%f%f",&m,&n);
for(i=0;i<n;i++)
{
m=m/2;
y=y+m*3;
}
y -= m;
printf("%.2f %.2f\n",m,y);
}
表明的是 一次弹起到最高点的时候经过的路程,问题是什么? 楼主可以看看 是第N次落地时候反弹多高,共经过多少米,楼主的计算公式比它多了个最后弹起的高度 ,应该减去最后一次弹起的高度!
举个例子 1000米的时候 弹起一次反弹多高呢 ? 显然是500 经过的路程呢 1000 按照楼主的计算公式就是1500米,多在了最高多计算了一次 减去就行了!改程序的循环部分 我还没没有想好 ,不过按下面这样改
#include<stdio.h>
#include<string.h>
int main()
{
float m,n,i,y=0;
scanf("%f%f",&m,&n);
for(i=0;i<n;i++)
{
m=m/2;
y=y+m*3;
}
y -= m;
printf("%.2f %.2f\n",m,y);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询