一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?下面是我写的程序,但是不知道问题出现在哪里?...
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
下面是我写的程序,但是不知道问题出现在哪里?请各位帮帮忙看一下,谢谢各位高手。
#include <stdio.h>
void main()
{ int i;
float h,t;
h=100.0;
t=1.0;
for(i=2;i<=10;i++)
{ t=t/2;
h=h*t;
h=h+2*h;
}
printf("%.2f %.2f\n",h,h);
getchar();
} 展开
第10次落地时,共经过多少米?第10次反弹多高?
下面是我写的程序,但是不知道问题出现在哪里?请各位帮帮忙看一下,谢谢各位高手。
#include <stdio.h>
void main()
{ int i;
float h,t;
h=100.0;
t=1.0;
for(i=2;i<=10;i++)
{ t=t/2;
h=h*t;
h=h+2*h;
}
printf("%.2f %.2f\n",h,h);
getchar();
} 展开
3个回答
展开全部
你的程序逻辑错误,你是不是没弄清楚哪个变量是高度,哪个变量是经过的距离?
以下程序,sum为经过的距离,hight为高度
#include <stdio.h>
#include <cstdlib>
int main()
{ int i;
float sum,hight;
sum=100.0;
hight=100.0;
for(i=2;i<=10;i++)
{
hight /= 2;
sum += hight * 2;
printf("第%d次:%.2f %.2f\n", i, sum, hight);
}
printf("%.2f %.2f\n", sum, hight);
system("pause");
return 0;
}
追问
您的这个运行环境是哪个 ?能给我一份吗 ?我现在用的是Turbo C 2.0,感觉不是很好用 ,谢谢您的回答
追答
我用的是DEV C++,比较小,网上链接一大堆,百度下
你要是经常编程的话建议用Virtual Stdio 2008以上,这个很大,但是功能也多,初学者要适应一段时间
展开全部
我用的是python 3写的,可以参考一下吧。为了能把两个不同的结果要求放在一个循环里,因此只考虑到了9次循环,并没有使用10次循环。
def drop(high):
length=height=0.0
tmp=high
#循环9次,下标从0开始
for i in range(9):
length+=tmp
tmp=tmp/2
height=tmp
print('第%d次落地的路程(没有算最初的100米)%f'%(i+2,length))
print('第%d次弹回的高度(只算了前9次)%f'%(i+1,height))
print(length+high)#第一次落地的100米距离应该额外加上
print(height/2)#以上的结果只是第九次反弹的高度,应该再除以2得到第10次的反弹高度
# for i in range(10):
# high=high/2
# height=high
# print(height,end=' ')
def drop(high):
length=height=0.0
tmp=high
#循环9次,下标从0开始
for i in range(9):
length+=tmp
tmp=tmp/2
height=tmp
print('第%d次落地的路程(没有算最初的100米)%f'%(i+2,length))
print('第%d次弹回的高度(只算了前9次)%f'%(i+1,height))
print(length+high)#第一次落地的100米距离应该额外加上
print(height/2)#以上的结果只是第九次反弹的高度,应该再除以2得到第10次的反弹高度
# for i in range(10):
# high=high/2
# height=high
# print(height,end=' ')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
int main(){
double up;
double distance;
double down=100;
for(int i=1;i<=9;i++){//i 是反弹次数;
down=down/2;
up=down;
distance=down+up+distance ;
}
printf("路程数是:%f\n",distance+100);//最后还要 加上一百。
printf("第10次反弹高度是:%f",up/2);
}
int main(){
double up;
double distance;
double down=100;
for(int i=1;i<=9;i++){//i 是反弹次数;
down=down/2;
up=down;
distance=down+up+distance ;
}
printf("路程数是:%f\n",distance+100);//最后还要 加上一百。
printf("第10次反弹高度是:%f",up/2);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询