C语言自由落体方面

 我来答
风若远去何人留
2015-07-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450136
专业C/C++软件开发

向TA提问 私信TA
展开全部
#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;
}
piestkj
2015-07-21 · TA获得超过928个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:618万
展开全部
#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
d5378295
2012-05-28 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:38.7万
展开全部
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式