John_Gcn 2023-03-29 20:18 采纳率: 83.3%
浏览 44
已结题

关于#c语言#的问题,请各位专家解答!

一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米,第n次反弹多高。

输入格式:
输入在一行中给出两个非负整数,分别是皮球的初始高度h和n。

输出格式:
在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。

输入样例:
33 5
输出样例:
94.9 1.0


```c
#include <stdio.h>

int main() {
    double height, total_distance, bounce_height;
    int n;

    scanf("%lf%d", &height, &n);

    // 计算总共经过的距离
    total_distance = height;
    for (int i = 1; i < n; i++) {
        bounce_height = height / 2;  // 每次反弹的高度
        total_distance += height + bounce_height;  // 累加每次落地和反弹的距离
        height = bounce_height;  // 更新下一次落地的高度
    }
    total_distance += height * 2;  // 加上最后一次落地的距离

    printf("%.1f %.1f\n",total_distance,bounce_height);

    return 0;
}

只有部分答案正确,程序运行后不能完全正确,但是检查好几遍都没有发现逻辑问题

  • 写回答

2条回答 默认 最新

  • tanjunming2020 2023-03-29 20:32
    关注

    代码如下

    #include <stdio.h>
     
    int main() {
        double height, total_distance, bounce_height;
        int n;
     
        scanf("%lf%d", &height, &n);
     
        // 计算总共经过的距离
        for (int i = 1; i < n; i++) {
            bounce_height = height / 2;  // 每次反弹的高度
            total_distance += height + bounce_height;  // 累加每次落地和反弹的距离
            height = bounce_height;  // 更新下一次落地的高度
        }
        total_distance += height;  // 加上最后一次落地的距离
        bounce_height = height / 2;
        printf("%.1f %.1f\n",total_distance,bounce_height);
     
        return 0;
    }
     
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月29日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数