【C语言历程1.小球坠落】小球从100米处落下,每次落地后又反跳回来,高度返回到原来的1/2,然后再落下,问:第10次落地时,共经过了多少米?第10次反弹时的高度为多少?

        首先这是一个很基础的C语言问题了,但是可能是小白,或许不太明白题意,当初我高中第一次接触到时,也脑补了好久,哈哈哈哈,现在就来给大家解答:

        【解析题目】 

         1.小球从100米落下,那么它的第一次下落,距离就为100米,所以我们就直接把距离赋初值为100米。

        2.小球每次都会反弹回原来的一半,可理解为第1次回弹距离为50, 2次为25   3次为12.5     4次为6.25    5次为3.125   6次为1.5625    7次为0.78125    8次为0.390625    9次为0.1953125    10次为0.09765625。

3.看图理解【C语言历程1.小球坠落】小球从100米处落下,每次落地后又反跳回来,高度返回到原来的1/2,然后再落下,问:第10次落地时,共经过了多少米?第10次反弹时的高度为多少?_第1张图片

 由此可得出:每次反弹回去都是2段路程,于是乎我们先用一条语句得出单条路程的语句:

 设个float m=100(因为实在100的基础上得到1半的)m=m/2;

      3.最后,用一个累加和方式,设 float s=100(前面提到过),s=s+m*2;  

             最最后把这些放在for语句中,  t为二表示次数是从第二次开始计算(第一次我们已经赋值为100了嘛) s表示累加的路程    m为单次的路程(记得*2哦,你弹下去了,还要上来嘛)

        4.程序如下

#include"stdio.h"
  main()
 { float m=100,s=100;int t;
  printf("小球从100米开始落下:\n");
  for( t=2;t<=10;t++)
     { m=m/2;
       s+=m*2;
       printf("从地面回弹第%d次落下,小球经过距离为%f\n",t,s);//测试次反弹 ,之所以没有第一次,
	  }                                                   //因为是与第二次一起算100+50*2=200 
  printf("第%d次,经过%f米,高度为%f",t-1,s,m/2)	;
 }

        5. 运算结果

【C语言历程1.小球坠落】小球从100米处落下,每次落地后又反跳回来,高度返回到原来的1/2,然后再落下,问:第10次落地时,共经过了多少米?第10次反弹时的高度为多少?_第2张图片

你可能感兴趣的:(C/C++,c语言,c++,开发语言,算法,编辑器)