c++题目问题,我写了解法但是检查不出哪里错了。

描述一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。输入输入有一行:包行两个整数... 描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例输入
第一组23 11
第二组1 1
样例输出
第一组3
第二组6367
提示
如果一个圆桶的深为h厘米,底面半径为r厘米,那么它最多能装Pi * r * r * h立方厘米的水。(设Pi=3.14159)
1升 = 1000毫升
1毫升 = 1 立方厘米
------------------
我写的答案是:
#include <iostream>
#define WATER 20000
#define Pi 3.14159
using namespace std;
int main()
{
int h, r;
float m = 0.0;
cin >> h >> r;
m = WATER / Pi*r*r*h;
if (m == int(m))
{
cout << int(m) << endl;
}
else
{
m = int(m) + 1;
cout << m << endl;
}
return 0;
}
----------------
但是用第一组数据(23 11)输出的结果不对(输出为:17717143),求大家帮忙看看哪里错了,我实在是检查不出来啊!
PS:用第二组是对的。
展开
 我来答
葬毙
2016-07-27
知道答主
回答量:3
采纳率:0%
帮助的人:3.8万
展开全部
#include <stdio.h>  
#include <iostream>  
#include <math.h>  
using namespace std;  
const int PI =3.14159;  
int main(){  
    int r,h;  
    double x;  
    cin>>h>>r;  
    //pi* r的平方*高*10负3次方  
    x=(pow(r,2)*PI*h)*(1e-3);  
    //判断是否是小数  
    int result=(int)(20/x);  
    if(result==x){  
        cout<<result<<endl;  
    }else{  
        cout<<result+1<<endl;  
    } 
    return 0;  
}

 求采纳O(∩_∩)O~

追问
回答的很仔细,但是有人已经抢答了
hwk612167
2016-07-27 · TA获得超过1322个赞
知道小有建树答主
回答量:281
采纳率:100%
帮助的人:320万
展开全部
m = WATER / Pi*r*r*h; 这里要加括号:m = WATER / ( Pi*r*r*h);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式