中易网

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

答案:3  悬赏:20  
解决时间 2021-04-28 01:55
  • 提问者网友:年齡太小℡蘿莉
  • 2021-04-27 09:37
描述
一只大象口渴了,要喝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:用第二组是对的。
最佳答案
  • 二级知识专家网友:晚安听书人
  • 2021-04-27 10:43

你的输入可以用一个字符串接下来,比如

string in = "1,2,3,4,5,6";

然后用逗号去拆开就好了。

至于分组,你可以用这样一个结构

    struct indexvector
    {
    int index;
    std::vector<int> data;
    }

有新的组号时,你就创建一个这个对象,并把数字塞到data里面,最后统计data的个数就可以了。

全部回答
  • 1楼网友:星星坠落
  • 2021-04-27 12:21
m = WATER / Pi*r*r*h; 这里要加括号:m = WATER / ( Pi*r*r*h);
  • 2楼网友:何以畏孤独
  • 2021-04-27 11:15
#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~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息