C语言程序设计100道真题-球反弹10次,经过多少米?

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

实现的思路:
首先,球从100米高度落下,因此第一次落下时经过的路程为100米。接着,球反弹至原高度的一半,并再次落下。每次反弹和落下,球都会经过相同的高度,即反弹的高度。因此,我们可以用一个循环来模拟球的反弹和落下的过程,并累加每次经过的路程。

代码(包含解析):

#include <stdio.h>   
  
int main(){  
	float h=50, s=100, i; // 初始高度h设为50(第一次反弹的高度),总路程s设为100(第一次落下的路程)  
	for(i=2; i<=10; i++){ // 从第二次开始循环,因为第一次落下和反弹已经计算在内  
		s += h * 2; // 每次循环,总路程s加上反弹高度h的两倍(因为球要反弹上去再落下)  
		h /= 2; // 每次循环,反弹高度h减半  
	}  
	printf("第10次落地时,共经过%f米\n", s); // 输出总路程  
	printf("第10次反弹多高:%f米\n", h); // 输出第10次反弹的高度  
	return 0;  
}

代码解读:

  1. 变量声明与初始化
    float h=50, s=100, i;:这里声明了三个浮点型变量。h代表球每次反弹的高度,初始化为50米(第一次反弹的高度);s代表球从开始到第10次落地总共经过的路程,初始化为100米(第一次落下的路程);i作为循环变量。

  2. 主要逻辑
    使用for循环来模拟球从第二次反弹开始直到第10次落地的过程。在循环中,每次都将h的两倍加到s上(因为球要先反弹上去再落下),然后将h除以2来模拟反弹高度减半。

  3. 循环与条件判断
    循环从i=2开始,因为第一次落下和第一次反弹(即第一次上升)已经在初始化时计算了。循环条件是i<=10,确保只计算到第10次落地为止。

  4. 函数与接口
    使用了标准库函数printf来输出结果。没有自定义函数。

  5. 特殊情况处理
    代码中没有处理任何特殊情况,因为题目的条件比较直接,没有复杂的边界条件或异常情况。

  6. 返回值与输出
    程序返回值为0,表示正常结束。输出结果包括总路程和第10次反弹的高度。

  • 17
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值