预定程序员 2023-07-24 10:31 采纳率: 67.4%
浏览 29
已结题

openjudge的大象喝水问题,运行结果输出错误

问题:代码可以运行,但是输出结果错误,又找不出哪里不对。
题目:
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。

输入:
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出:
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例输入:
23 11
样例输出:
3

#include<stdio.h>
#include<math.h>
#define pi 3.14159
int main()
{
    double h,r,v;
    scanf("%lf%lf",&h,&r);
    v=pi*pow(r,2)*h;
    int x=20/v;
    if(x*v!=20)
    {
        x+=1;
    }
    printf("%d",x);
}
```c




23 11
1
--------------------------------
Process exited after 3.239 seconds with return value 0
请按任意键继续. . .

  • 写回答

4条回答 默认 最新

  • 藏柏 2023-07-24 10:49
    关注

    你的单位和逻辑搞错了,
    大象口渴了要喝20升水,但是你计算的v是小圆桶的容积,单位是立方厘米,而不是升
    桶数不能是小数,所以要向上取整

    代码改成这样试试

    
    #include <stdio.h>
    #include <math.h>
    #define pi 3.14159
    
    int main() {
        double h, r, v;
        scanf("%lf %lf", &h, &r);
    
        // 将r转换为米,h转换为升,计算小圆桶的容积
        r = r / 100.0;
        h = h / 100.0;
        v = pi * pow(r, 2) * h * 1000; // 转换为升的单位
    
        int x = ceil(20.0 / v); // 使用ceil函数向上取整,确保至少喝一桶水
        printf("%d", x);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日
  • 创建了问题 7月24日

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码