酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用C语言描述 一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?输出包含两行,第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。 输入描述 输入一个整数h,表示球的初始高度。 输出描述 第1行:到球第10次落地时,一共经过的米数。 第2行:第10次弹跳的高度。 注意:结果可能是实数,结果用double类型保存。 提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf("%g", ANSWER)即可。 用例输入 1 20 用例输出 1 59.9219 0.0195312

```c #include <stdio.h> int main() { double h; // 初始高度 scanf("%lf", &h); // 读取初始高度 double total_distance = h; // 总距离,初始为第一次下落的高度 double current_height = h; // 当前高度 for (int i = 1; i < 10; i++) { current_height /= 2; // 每次反弹高度减半 total_distance += 2 * current_height; // 每次反弹和下落的总距离 } printf("%g\n", total_distance); // 输出总距离 printf("%g\n", current_height / 2); // 输出第10次反弹的高度 return 0; } ``` 需要注意的逻辑点: 1. 总距离的计算需要考虑每次反弹和下落的两段距离。 2. 第10次反弹的高度是第10次落地后反弹的高度,因此需要在循环结束后再除以2。 3. 使用`%g`格式化输出可以自动选择合适的精度,避免不必要的零。 [2025-02-20 19:38:01 | AI写代码神器 | 234点数解答]

相关提问