黑马程序员技术交流社区
标题: 关于自由落体的c语言程序 [打印本页]
作者: 396944929 时间: 2015-1-4 00:13
标题: 关于自由落体的c语言程序
/*
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
*/
#include <stdio.h>
int main()
{
// sum用来存储经过多少米。a是物体距地面高度
float sum=0,a=100;
// 弹十次
for(int i=0;i<=10;i++)
{
sum=sum+a;
if(i==9)
break;
a=a/2;
}
printf("工经过%f米,第十次弹%f米\n",sum,a);
}
这个小程序不算长吧 但是用到了很多知识点 自加 还有for语句到底循环多少次 先把a存到sum里就是因为第一次弹起来没有降下来~
学到了不少。 以后继续努力学
大家看不懂可以留言问我
作者: 励志Java_鸿政 时间: 2015-1-4 11:06
虽然不是学IOS的,但是觉得这个东西挺管用!顶个
作者: 三生三世 时间: 2015-1-4 11:50
我先画图简要的计算了一下3,4次的数值,然后用测试了一下,感觉是错的。
首先是sum的距离,你只计算了下落的总和,没有把反弹的距离加进去。
其次是你计算的反弹距离并不是最后一次,而是上一次。
#include <stdio.h>
int main()
{
// sum用来存储经过多少米。a是物体距地面高度
float sum=0,a=100;
// 弹十次
for(int i = 0;i < 10; i++)
{
//第一次距离只包括下落
if(i == 0)
{
sum += a;
}
//之后的距离包括反弹和下落
else
{
sum += 2*a;
}
//反弹距离为之前下落距离的一半
a=a/2;
}
printf("工经过%f米,第十次弹%f米\n",sum,a);
}
这是我修改后的代码。:)大家多多讨论下~
作者: sunshine429 时间: 2015-1-4 23:20
为什么定义的float变量。。。最后没有f
作者: 396944929 时间: 2015-1-5 22:48
有的啊 哪里没有呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |