正文

[038] 小球反弹2006-03-18 23:28:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wentao/11143.html

分享到:

<谭> 6.9 一球从100m高度自由落下,每次落地后反跳回原高度的一半再落下。求它在第10次落地时共经过多少m?  第10次反弹多高?#include <stdio.h>int   main(){    float an = 100 ;         /* 第一次落地前的高度 */    float sn = an  ;         /* 第一次落地时总路程 */    int i ;    for ( i = 2; i <= 10; i++)    {        an = an / 2 ;        sn = sn + an * 2 ;    }    printf("Sum=%fm\n",sn);    printf("The tenth hight is: %fm\n",an / 2);    return 0;}运行结果:======================================Sum=299.609375mThe tenth hight is: 0.097656m======================================★ 如此设计时绕了个小弯儿, 即第10次落地时的an为第9次反弹的高度, 因此在输出时又一次减半为an/2, 验证如下:#include <stdio.h>int   main(){    float an = 100 ;     float sn = an  ;      int i ;    for ( i = 2; i <= 10; i++)    {        an = an / 2 ;        printf("i=%2d an=%f\n", i, an);        sn = sn + an * 2 ;        printf("     sn=%f\n", sn);    }    printf("\nSum=%fm\n",sn);    printf("The tenth hight is: %fm\n",an / 2);    return 0;}运行结果:================================i= 2 an=50.000000     sn=200.000000i= 3 an=25.000000     sn=250.000000i= 4 an=12.500000     sn=275.000000i= 5 an=6.250000     sn=287.500000i= 6 an=3.125000     sn=293.750000i= 7 an=1.562500     sn=296.875000i= 8 an=0.781250     sn=298.437500i= 9 an=0.390625     sn=299.218750i=10 an=0.195313     sn=299.609375 Sum=299.609375mThe tenth hight is: 0.097656m================================★ 若用书上的方法, 无此问题, 也就是将an各sn的操作换个顺序#include <stdio.h>int   main(){    float sn = 100  ;    float an = sn / 2 ;     int i ;    for ( i = 2; i <= 10; i++)    {        sn = sn + an * 2 ;        printf("i=%2d sn=%f\n", i, sn); /* 验证用 */        an = an / 2 ;        printf("     an=%f\n", an);           /* 验证用 */    }    printf("\nSum=%fm\n",sn);    printf("The tenth hight is: %fm\n",an);    return 0;}运行结果:=================================i= 2 sn=200.000000                       说明: 第二次落地经过的路程     an=25.000000                        说明: 第二次弹起的高度i= 3 sn=250.000000     an=12.500000i= 4 sn=275.000000     an=6.250000i= 5 sn=287.500000     an=3.125000i= 6 sn=293.750000     an=1.562500i= 7 sn=296.875000     an=0.781250i= 8 sn=298.437500     an=0.390625i= 9 sn=299.218750     an=0.195313i=10 sn=299.609375     an=0.097656 Sum=299.609375mThe tenth hight is: 0.097656m=================================

阅读(3234) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册