Annette_wang 2021-03-08 15:19 采纳率: 84.6%
浏览 65
已采纳

这个代码错哪了,为啥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条回答 默认 最新

  • 琐琐闻 2021-03-08 15:48
    关注

    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行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部