林中有佳树 2022-10-01 23:24 采纳率: 71.4%
浏览 94
已结题

大象喝水的问题为啥这样运行的结果不对啊

一只大象要喝 2020 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r厘米的小圆桶(h和 r 都是整数)。问大象至少要喝多少桶水才会解渴。

img

img

  • 写回答

5条回答 默认 最新

  • 莪是男神 2022-10-02 00:39
    关注

    我给你看个示例,你就明白了:

    /* elephantsDrinking.c -- 实现大象喝水 */
    #include <stdio.h>
    #include <math.h>
    // 定义圆周率常量
    #define PI 3.1415926
    
    /*
        一只大象要喝 2020 升水才能解渴,但现在只有一个深 h 厘米,底面半径
        为 r 厘米的小圆桶(h 和 r 都为整数),问大象至少要喝多少桶水才会解渴?
    */
    int main(void)
    {
        // 定义整型变量 h, r
        int h, r;
        // 提示性输出
        printf("请输入小圆桶的高度和底面半径:");
        // 读取高和底面半径
        scanf("%d%d", &h, &r);
        // 计算体积,单位平方厘米
        double volume = PI * r * r * h;
        // 计算喝多少桶水的数量
        double num = 2020.0D / (volume / 1000000.0D);
        // 输出喝多少桶的数量
        printf("总共要喝%.0f桶\n", floor(num));
    
        return 0;
    }
    

    floor() 函数可以向下取整,但是返回的数也是一个 double 类型的浮点数。
    使用整型变量接收其值会有精度丢失的风险,所以最后的结果不对
    此外,你的 scanf() 函数的使用也有问题,你直接把参与也放进了字符串里,这是不对的,
    可能导致程序代码无法运行,或运行有问题

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 10月10日
  • 已采纳回答 10月2日
  • 创建了问题 10月1日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题