一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地

一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高。#include<stdio.h>mai... 一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高。
#include <stdio.h>
main()
{float m,h,sum;
int k;
for(m=100,sum=0,k=1;k<=10;k++)
{h=m/2.0;
sum=m+h;
m=h;
if(k==10)
{
printf("The height of 10th is %f m\n",h);
printf("The total distance is %f m ",sum);
}

}
}
请问程序那里有问题呢?
展开
kaixingui2012
推荐于2016-12-01 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6429万
展开全部
修改了一下,以下为优化后的代码,加了调试语句,自己运行并思考一下吧:
#include <stdio.h>
void main()
{
double m,h,sum;
int k;
for(h=m=100,sum=0,k=1;k<=10;k++) //开始时,h m是一样的
{
printf("%d-- h:%lf m:%lf\n", k, h,m ); //这是每次落地运行的距离和高度 弹起落下是一样的距离!
sum += m ;
m=h;
h=m/2.0;
if(k==10)
{
printf("The height of 10th is %lf m\n", h );
printf("The total distance is %lf m\n", sum );
}
}
}
yangyf0922
2014-11-20 · TA获得超过3.7万个赞
知道大有可为答主
回答量:2.4万
采纳率:73%
帮助的人:4145万
展开全部
第六行,应该是 h = m/2^k;第七行,应该是 sum = sum +h;第八行,取消。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式