haiouda 发表于 2015-2-10 11:37:17

为何二个运行结果不一致,差在哪里了?

本帖最后由 haiouda 于 2015-2-10 11:41 编辑

/*************************************************************
【程序20】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
*************************************************************/

/***
#include <stdio.h>

void main()
{
      float x=100,y=0;
      int i;
      
      for (i=1;i<=10;i++)
      {
                y+=x+x/2;
                x/=2;
                printf("%f\n",x);
               
      }
      printf("%f\n",y);

}
**/


main()
{
      float sn=100.0,hn=sn/2;
      int n;
      for(n=2;n<=10;n++)
      {
                sn=sn+2*hn;   //第n次落地时共经过的米数
                hn=hn/2;    //第n次反跳高度
                printf("%f\n",hn);
      }
      printf("the total of road is %f\n",sn);
      printf("the tenth is %f meter\n",hn);
}
最后的结果不一致,求教,差在哪里了(上半部 我自己编的,下面是100题带的答案)?

页: [1]
查看完整版本: 为何二个运行结果不一致,差在哪里了?