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:用第二组是对的。 展开
一只大象口渴了,要喝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:用第二组是对的。 展开
展开全部
#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~
追问
回答的很仔细,但是有人已经抢答了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询