Annette_wang
Annette_wang
采纳率77.8%
2021-03-08 23:19

这个代码错哪了,为啥open judge报错?

已采纳
#include <iostream>
using namespace std;
int main()
{
  int h,b,m=1;
  double s=0,pi=3.14159;
  cin>>h>>b;
  s =pi*h*b*b;
  while(s<20000) {
    ++m;
  s=s*m;
  }
   cout<<m<<endl;
  return 0;
}

描述

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

输入有一行:两个整数分别表示小圆桶的深h和底面半径r,单位都是厘米。

输出一行,包含一个整数,表示大象至少要喝水的桶数。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_45489807 琐琐闻 1月前

    11行错了s=s*m让s依次此*1,*2,*3知道s>=20000,可以新开一个变量来记录m桶水的总体积每次加一个s,或是直接用s*m与20000作比较

    //用sum记录m桶水的体积
    double sum=s;
    while(sum<20000){
        m++;
        sum+=s;
    }
    //用s*m与20000作比较,s为一桶水体积,m为当前桶数
    while(s*m<20000)
        m++;

    可以用以上两段代码替换9-11行

    点赞 1 评论 复制链接分享